มีสองแนวคิดหลักในความสับสน: ผูกพันและโหลด มันถูกผนวกเข้าด้วยแนวคิดของ DataBinding ซึ่งอยู่ตรงกลางมักจะทำทั้งสองอย่าง หลังจากพิจารณาแล้วฉันจะเพิ่มแนวคิดอีกหนึ่งข้อเพื่อทำให้ trifecta เสร็จสมบูรณ์ส่งไป
ประเภท
การผูกปลาย : ไม่ทราบประเภทจนกว่าจะมีการใช้ตัวแปรในระหว่างเวลาทำงาน มักจะผ่านการมอบหมาย แต่มีวิธีอื่นในการบีบบังคับประเภท; ภาษาที่พิมพ์แบบไดนามิกเรียกสิ่งนี้ว่าเป็นคุณสมบัติพื้นฐาน แต่ภาษาที่พิมพ์แบบคงที่จำนวนมากมีวิธีการบางอย่างเพื่อให้เกิดการเชื่อมโยงที่ล่าช้า
นำมาใช้บ่อยครั้งโดยใช้ [ไดนามิก] ประเภทไดนามิก, วิปัสสนา / ไตร่ตรอง, แฟล็กและตัวเลือกคอมไพเลอร์หรือผ่านวิธีเสมือนโดยยืมและขยายการจัดส่งแบบไดนามิก
การเชื่อมก่อนกำหนด : ชนิดเป็นที่รู้จักกันก่อนที่จะมีการใช้งานตัวแปรในช่วงเวลาทำงานโดยปกติผ่านวิธีการคงที่การประกาศ
นำมาใช้บ่อยครั้งโดยใช้ชนิดดั้งเดิมดั้งเดิม
ฟังก์ชั่น
Static Dispatch : เป็นที่รู้จักกันเฉพาะฟังก์ชั่นหรือรูทีนย่อยที่รวบรวมเวลา; มันไม่ชัดเจนและจับคู่โดยลายเซ็น
ดำเนินการเป็นฟังก์ชั่นคงที่; ไม่มีวิธีใดที่สามารถมีลายเซ็นเดียวกันได้
Dynamic Dispatch : ไม่ใช่ฟังก์ชั่นหรือรูทีนย่อยเฉพาะในเวลารวบรวม กำหนดโดยบริบทระหว่างการดำเนินการ มีวิธีการที่แตกต่างกันสองวิธีในการ "จัดส่งแบบไดนามิก" แยกแยะโดยข้อมูลบริบทที่ใช้ในการเลือกการใช้งานฟังก์ชั่นที่เหมาะสม
ในการจัดส่งแบบไดนามิก [ เดียว ] เฉพาะประเภทของอินสแตนซ์ที่ใช้ในการพิจารณาการใช้งานฟังก์ชั่นที่เหมาะสม ในภาษาที่พิมพ์แบบสแตติกสิ่งนี้หมายถึงในทางปฏิบัติคือประเภทอินสแตนซ์ตัดสินใจว่าการใช้วิธีการใดจะใช้โดยไม่คำนึงถึงประเภทการอ้างอิงที่ระบุเมื่อมีการประกาศ / กำหนดตัวแปร เนื่องจากมีเพียงชนิดเดียว - ชนิดของอินสแตนซ์ของวัตถุ - ถูกใช้เพื่ออนุมานการใช้งานที่เหมาะสมวิธีการนี้เรียกว่า "การแจกจ่ายเดี่ยว"
นอกจากนี้ยังมีการจัดส่ง [ ไดนามิก ] หลายครั้งที่ประเภทพารามิเตอร์อินพุตยังช่วยพิจารณาว่าการใช้งานฟังก์ชันใดในการโทร เนื่องจากมีหลายประเภท - ทั้งประเภทของอินสแตนซ์และประเภทของพารามิเตอร์มีอิทธิพลต่อการเลือกใช้งานวิธีการวิธีการนี้จึงขนานนามว่า "ส่งหลายรายการ"
นำมาใช้เป็นฟังก์ชั่นเสมือนหรือนามธรรม; เบาะแสอื่น ๆ รวมถึงวิธีการแทนที่ซ่อนหรือเงา
NB: ไม่ว่าวิธีการบรรทุกเกินพิกัดที่เกี่ยวข้องกับการจัดส่งแบบไดนามิกเป็นเฉพาะภาษา ตัวอย่างเช่นใน Java วิธีการโอเวอร์โหลดจะถูกส่งแบบคงที่
ค่า
กำลังโหลดขี้เกียจ : กลยุทธ์การเริ่มต้นวัตถุที่คล้อยตามการกำหนดค่าจนต้อง ; อนุญาตให้วัตถุอยู่ในสถานะที่ถูกต้อง แต่ไม่สมบูรณ์โดยเจตนาและรอจนกว่าข้อมูลนั้นจะต้องการก่อนที่จะโหลด มักพบว่ามีประโยชน์อย่างยิ่งสำหรับการโหลดชุดข้อมูลขนาดใหญ่หรือรอทรัพยากรภายนอก
ดำเนินการบ่อยครั้งโดยไม่ตั้งใจโหลดคอลเลกชันหรือรายการลงในวัตถุประกอบระหว่างการเรียกใช้งานตัวสร้างหรือการเริ่มต้นจนกว่าผู้โทรดาวน์สตรีมบางรายจะขอดูเนื้อหาของคอลเลกชันนั้น (เช่น get_value_at, get_all_as ฯลฯ ) รูปแบบรวมถึงการโหลดข้อมูลเมตาเกี่ยวกับคอลเลกชัน (เช่นขนาดหรือปุ่ม) แต่ไม่รวมข้อมูลจริง ยังให้กลไกแก่ runtimes บางอย่างเพื่อให้นักพัฒนามีรูปแบบการใช้งานซิงเกิลที่ปลอดภัยและมีประสิทธิภาพ
กำลังโหลดกระตือรือร้น : กลยุทธ์การเริ่มต้นวัตถุที่ดำเนินการกำหนดค่าทั้งหมดทันทีเพื่อให้มีข้อมูลทั้งหมดที่จำเป็นต้องทำให้เสร็จก่อนที่จะพิจารณาตัวเองว่าอยู่ในสถานะที่ถูกต้อง
นำมาใช้บ่อยครั้งโดยการให้วัตถุคอมโพสิตที่มีข้อมูลที่รู้จักทั้งหมดของพวกเขาโดยเร็วที่สุดเท่าที่เป็นไปได้เช่นในระหว่างการเรียกคอนสตรัคหรือการเริ่มต้น
การผูกข้อมูล : มักจะเกี่ยวข้องกับการสร้างลิงค์หรือแผนที่ที่ใช้งานอยู่ระหว่างสตรีมข้อมูลที่เข้ากันได้สองสตรีมเพื่อให้การเปลี่ยนแปลงหนึ่งสะท้อนกลับไปสู่สิ่งอื่นและในทางกลับกัน เพื่อให้เข้ากันได้พวกเขามักจะต้องมีประเภทฐานทั่วไปหรืออินเตอร์เฟซ
มีการใช้งานบ่อยครั้งเพื่อให้บริการที่สะอาดขึ้นการซิงโครไนซ์ที่สอดคล้องกันระหว่างแง่มุมการใช้งานที่แตกต่างกัน (เช่นมุมมองแบบจำลองเพื่อดูแบบจำลองไปยังตัวควบคุม ฯลฯ ) และพูดคุยเกี่ยวกับแนวความคิดเช่นต้นทางและปลายทาง on_bind, on_property_change, on_explicit, on_out_of_scope
หมายเหตุการแก้ไข: แก้ไขครั้งใหญ่ครั้งสุดท้ายเพื่อให้คำอธิบายตัวอย่างของสิ่งที่เกิดขึ้นเหล่านี้บ่อยครั้ง ตัวอย่างรหัสเฉพาะขึ้นอยู่กับการนำไปใช้งาน / รันไทม์ / แพลตฟอร์ม