ความคิดเห็นของฉันคือคุณควรเขียนสิ่งที่คุณจำเป็นต้องเขียนเพื่อสร้างความมั่นคงในระยะยาวและบำรุงรักษาโปรแกรมให้ดีขึ้น จุดในการหลีกเลี่ยงการเขียนโค้ด 20 บรรทัดในวันนี้คืออะไรถ้าทุกครั้งที่คุณสัมผัสบางสิ่งที่ใช้รหัสนี้หรือกลับมาเพื่อรักษาคลาสนี้คุณต้องเสียค่าใช้จ่ายเพิ่มอีก 5 นาทีหรือมากกว่าเพราะคุณไม่ได้ใส่ในเวลานี้
ดังนั้นคำถามจึงกลายเป็น "คุณต้องการเขียนอะไร?" ฉันไม่คิดว่าคุณให้ข้อมูลมากพอที่จะให้คำตอบที่ชัดเจนดังนั้นฉันจะเขียนสิ่งที่ฉันจะคิดในการตัดสินใจ:
1. คุณจำเป็นต้องมีวัตถุตัวอย่างด้วยตัวเองในตอนนี้หรือในอนาคตอันใกล้?
ถ้าเป็นเช่นนั้นคุณมีเหตุผลที่ดีในการทำเสื้อคลุมรอบ ๆ วัตถุผสมเนื่องจากคุณจะต้องห่อหุ้มสิ่งใดสิ่งหนึ่ง อาจจะต้องสอดคล้องกัน
2. มีสามประเภท (Car, Trailer, CarWithTrailer) ในส่วนของรหัสที่นักพัฒนาเข้าไปบ่อยหรือดูเหมือนจะเป็นเช่นนั้นหรือไม่?
ถ้าเป็นเช่นนั้นให้ระวังเพราะการเลือกสิ่งที่ผิดสามารถตัดค่าใช้จ่ายได้มากทุกครั้งที่สัมผัสรหัส หากไม่เป็นเช่นนั้นอาจไม่สร้างความแตกต่างในสิ่งที่คุณตัดสินใจ เพียงแค่เลือกทิศทางและไปกับมัน
3. มีอะไรที่เข้าใจง่ายที่สุด?
มีวิธีใดบ้างที่คุณคิดว่ามีใครบางคนเข้ามาข้างหลังคุณในทันทีจะ "รับ" สิ่งที่คุณพยายามจะทำ? เพื่อนร่วมทีมของคุณมีอคติเฉพาะที่อาจทำให้วิธีการหนึ่งยากขึ้นสำหรับพวกเขาในการรักษาหรือไม่? หากทุกสิ่งเท่ากันให้เลือกวิธีแก้ปัญหาที่กำหนดภาระการรับรู้ต่ำที่สุด
4. มีข้อได้เปรียบเพิ่มเติมใด ๆ หรือไม่ในการใช้หนึ่งวิธีเหนืออีกวิธีหนึ่ง?
สิ่งหนึ่งที่กระโดดออกมาที่ฉันก็คือความคิดที่เสื้อคลุมมีข้อได้เปรียบที่แตกต่างกันถ้าคุณเขียนว่า CarWithTrailerWrapper คุณสามารถห่อใด ๆรถยนต์และใด ๆรถพ่วงเข้าไปใน CarWithTrailer จากนั้นคุณเลิกเขียนวิธีการส่งผ่านทั้งหมด แต่คุณเขียนเพียงครั้งเดียวแทนที่จะเขียนหนึ่งครั้งสำหรับแต่ละชั้นรถ
นี่เป็นการลงทุนครั้งแรกของคุณในการเขียนวิธีการส่งผ่านที่ถูกกว่ามากเมื่อคุณเพิ่มรถยนต์และรถพ่วง นอกจากนี้ยังช่วยลดสิ่งล่อใจให้จับคู่สิ่งต่าง ๆ โดยตรงกับวอลโว่หรือวอลโว่ทราลเลอร์โดยตรงในขณะที่ลดผลที่ตามมาจากการมีเพศสัมพันธ์กับ CarWithTrailerWrapper เนื่องจากคุณสามารถทำสิ่งต่างๆได้มากขึ้น
อาจมีข้อดีที่แตกต่างที่คุณจะได้รับฟรีโดยใช้วิธีการขยาย แต่ฉันไม่เห็นพวกเขา
ตกลงดังนั้นดูเหมือนว่าฉันได้พูดคุยกับตัวเองเพื่อก้าวไปข้างหน้าและกรอกวิธีการส่งผ่านสำหรับแอปพลิเคชันที่ไม่สำคัญ
ฉันไม่ใช่โปรแกรมเมอร์ C ++ ดังนั้นฉันจึงไม่รู้ว่าเครื่องมือการสร้างรหัสใดที่มีให้สำหรับคุณ IDE ที่ฉันใช้สามารถสร้างวิธีการจากอินเทอร์เฟซและฉันสามารถเพิ่มแม่แบบรหัสที่จะทำให้การเขียน pass-throughs ไม่เจ็บปวด หากคุณไม่สามารถเข้าถึง IDE ที่ทำสิ่งนี้ได้คุณสามารถปล่อยให้Excel เขียนโค้ดให้คุณได้