6
วิธีการผูกมัดกับการห่อหุ้ม
มีปัญหา OOP แบบคลาสสิกของวิธีการผูกมัด vs วิธีการ "จุดเชื่อมต่อจุดเดียว": main.getA().getB().getC().transmogrify(x, y) VS main.getA().transmogrifyMyC(x, y) ครั้งแรกที่ดูเหมือนว่าจะมีข้อได้เปรียบที่แต่ละชั้นมีความรับผิดชอบสำหรับชุดปฏิบัติการขนาดเล็กเท่านั้นและทำให้ทุกอย่างเป็นแบบแยกส่วนมากขึ้น- การเพิ่มวิธีการใน C ไม่ต้องใช้ความพยายามใน A, B หรือ C เพื่อเปิดเผย ข้อเสียของหลักสูตรคือการห่อหุ้มที่อ่อนแอซึ่งรหัสที่สองแก้ ตอนนี้ A มีการควบคุมทุกวิธีที่ผ่านมันและสามารถมอบมันให้กับเขตข้อมูลของมันถ้ามันต้องการ ฉันรู้ว่าไม่มีวิธีแก้ปัญหาเดียวและแน่นอนขึ้นอยู่กับบริบท แต่ฉันอยากได้ยินบางอย่างเกี่ยวกับความแตกต่างที่สำคัญระหว่างสไตล์สองแบบและภายใต้สถานการณ์ใดที่ฉันควรเลือกแบบใดแบบหนึ่ง - เพราะตอนนี้เมื่อฉันลอง เพื่อออกแบบรหัสฉันรู้สึกว่าฉันไม่ได้ใช้อาร์กิวเมนต์เพื่อตัดสินใจทางเดียวหรืออื่น ๆ