เหตุใดจึงมีข่าวลือมากมายเกี่ยวกับการปิดในหมู่นักพัฒนาซอฟต์แวร์ ในอาชีพของฉันฉันไม่เคยใช้มันอย่างตั้งใจ แต่ไม่เข้าใจอย่างชัดเจนว่ามันคืออะไร
UPD: เพื่อชี้แจง คำถามคือว่าทำไมแนวคิดการปิดตัวลงจึงช่างพูดคุยกันทุกวันนี้
เหตุใดจึงมีข่าวลือมากมายเกี่ยวกับการปิดในหมู่นักพัฒนาซอฟต์แวร์ ในอาชีพของฉันฉันไม่เคยใช้มันอย่างตั้งใจ แต่ไม่เข้าใจอย่างชัดเจนว่ามันคืออะไร
UPD: เพื่อชี้แจง คำถามคือว่าทำไมแนวคิดการปิดตัวลงจึงช่างพูดคุยกันทุกวันนี้
คำตอบ:
การปิดเป็นรหัสที่จดจำโลกที่มาจากในขณะที่ยังใช้งานได้ซึ่งถูกนำมา
ตัวอย่างคือการกำหนดฟังก์ชั่นที่ไม่ระบุชื่อใน Java ซึ่งรู้ว่ามันอยู่ใน YourObject และสามารถจัดการวิธีการและฟังก์ชั่นของมัน ฟังก์ชั่นนี้จะถูกส่งไปยังสวิงเช่นที่ลึกเข้าไปภายในเช่นฟัง แต่ก็ยังมีเส้นชีวิตกลับไปที่รากของมัน
นี่เป็นแนวคิดที่ทรงพลังมากเพราะช่วยให้คุณสามารถส่งรหัสซึ่งไม่ทราบรหัสที่ใช้ - สามารถติดต่อกลับเข้าไปในส่วนอื่น ๆ ของรหัสได้
การปิดประตูเป็นเพียงบางสิ่งบางอย่างเพื่อแก้ไขปัญหาที่หลากหลายในวิธีที่สง่างาม ที่จริงแล้วในภาษาการเขียนโปรแกรมที่ไม่มีการปิดเทคนิคจะถูกสร้างขึ้นเพื่อใช้ฟังก์ชั่นที่คล้ายกัน
แค่คิดถึงฟังก์ชั่นใน C ++ หรือ Runnables ใน Java พวกเขาเป็นเพียงเทคนิคที่ช่วยให้ฟังก์ชันการทำงานคล้ายกับการปิด «การปิดด้วยตนเองบางประเภท»
การปิดกำลังได้รับความนิยมมากขึ้นเนื่องจากถูกรวมเข้ากับภาษายอดนิยม: Javascript เติบโตขึ้นเนื่องจากแอปพลิเคชันออนไลน์ (เช่น google doc เป็นต้น), C # นำไปใช้งาน, PHP ใช้งานตั้งแต่ 5.3 เป็นต้นไป
ขณะนี้การปิดนั้นมีอยู่ในเทคโนโลยีมากขึ้นเรื่อย ๆ กลายเป็นเรื่องตรงไปตรงมามากขึ้นเรื่อย ๆ ที่ผู้คนจำนวนมากให้ความสนใจ
ดังนั้นตอนนี้การปิดคืออะไร? มันค่อนข้างง่าย การปิดเป็นฟังก์ชันและบริบทเพื่อดำเนินการภายใน นี่คือการจัดการเป็นวัตถุ ทำไมถึงมีประโยชน์ สิ่งนี้มีประโยชน์ในการขอรหัสของคุณให้เป็นรหัสที่มีอยู่
ต่อไปนี้เป็นสถานการณ์ทั่วไปสองข้อที่ต้องใช้: เมื่อการดำเนินการได้รับการจัดการโดยรหัสส่วนอื่นเช่นในมัลติเธรดด้วยเธรดพูลหรือเมื่อการดำเนินการต้องดำเนินการในเหตุการณ์ที่เลือก (ใช้บ่อยใน javascript สำหรับ UI)
ฉันเห็นข้อความที่น่าขบขันในวันอื่น ๆ มันเป็นไปตามบรรทัดของ "คลาสเป็นข้อมูลที่มีฟังก์ชั่นการปิดเป็นฟังก์ชั่นที่มีข้อมูล"
ใช่มันเป็นการทำให้ใหญ่เกินไป แต่มันช่วยให้เข้าใจได้