ฉันคิดว่ามีสามปัจจัยที่เข้ามาเล่นที่นี่
ขาดมวลวิกฤต
อย่างแรกรูปแบบนั้นโดยทั่วไปแล้วการให้ชื่อกับโค้ดบางอย่างนั้นใช้ฟังก์ชั่น "อัน" โดยเฉพาะ วิธีเดียวที่ชื่อนั้นให้คุณค่าที่แท้จริงคือถ้าคุณสามารถพึ่งพาทุกคนที่รู้ว่าชื่อนั้นมีความหมายเพียงแค่ใช้ชื่อพวกเขาจะเข้าใจได้ทันทีมากเกี่ยวกับรหัส
รูปแบบไม่เคยสร้างมวลวิกฤตที่พวกเขาต้องการเพื่อให้บรรลุถึงแม้ว่า ค่อนข้างตรงกันข้าม AAMOF ในช่วง 20 ปี (หรือมากกว่านั้น) นับตั้งแต่หนังสือ GoF ออกมาฉันค่อนข้างแน่ใจว่าฉันไม่เคยเห็นการสนทนาเป็นโหลมากเท่าที่ทุกคนที่เกี่ยวข้องจะรู้รูปแบบการออกแบบที่เพียงพอสำหรับใช้ในการปรับปรุงการสื่อสาร
หากต้องการทำให้มันดูแปลกตากว่าเดิมเล็กน้อย: รูปแบบการออกแบบล้มเหลวโดยเฉพาะเพราะไม่ได้ผล
รูปแบบมากเกินไป
ฉันคิดว่าปัจจัยหลักที่สองคือถ้ามีอะไรพวกเขาเริ่มตั้งชื่อรูปแบบมากเกินไป ในกรณีจำนวนพอใช้ความแตกต่างระหว่างลวดลายมีความละเอียดอ่อนพอที่จะไม่พูดด้วยความมั่นใจจริง ๆ ว่าคลาสใดเหมาะกับรูปแบบใดรูปแบบหนึ่งหรืออีกรูปแบบหนึ่ง
เจตนาคือคุณจะสามารถพูดคุยเกี่ยวกับรหัสในระดับที่สูงขึ้น คุณสามารถติดเลเบลของโค้ดขนาดใหญ่พอ ๆ กับการใช้รูปแบบเฉพาะ เพียงแค่ใช้ชื่อที่กำหนดไว้ล่วงหน้าผู้ฟังทุกคนจะรู้ได้มากเท่าที่พวกเขาใส่ใจเกี่ยวกับรหัสนั้นดังนั้นคุณจึงสามารถก้าวไปสู่สิ่งต่อไปได้
ความจริงนั้นเกือบจะตรงกันข้าม สมมติว่าคุณอยู่ในการประชุมและบอกพวกเขาว่าชั้นเรียนนี้เป็นซุ้ม คนครึ่งหนึ่งในที่ประชุมไม่เคยรู้หรือลืมมานานว่าลืมความหมาย หนึ่งในนั้นขอให้คุณเตือนเขาถึงความแตกต่างที่แน่นอนระหว่างซุ้มและพูดผู้รับมอบอำนาจ โอ้และคนสองคนที่รู้ว่ารูปแบบใช้เวลาส่วนที่เหลือของการประชุมถกเถียงกันว่าสิ่งนี้ควรได้รับการพิจารณาว่าเป็น Facade หรือ "แค่" อะแด็ปเตอร์ (กับผู้ชายคนนั้นยังยืนยันว่า
เนื่องจากความตั้งใจของคุณเป็นเพียงการพูดว่า: "รหัสนี้ไม่น่าสนใจมากเลยไปกันเถอะ" พยายามใช้ชื่อรูปแบบเพิ่มความฟุ้งซ่านเท่านั้นไม่ใช่ค่า
ขาดความสนใจ
รูปแบบการออกแบบส่วนใหญ่ไม่ได้เกี่ยวข้องกับส่วนที่น่าสนใจของรหัส พวกเขาจัดการกับสิ่งต่าง ๆ เช่น: "ฉันจะสร้างวัตถุเหล่านี้ได้อย่างไร" และ "ฉันจะทำให้วัตถุนี้พูดคุยกับวัตถุนั้นได้อย่างไร" การจดจำชื่อรูปแบบสำหรับสิ่งเหล่านี้ (รวมถึงข้อโต้แย้งข้างต้นเกี่ยวกับรายละเอียดและอื่น ๆ ) เพียงแค่ใส่พลังงานจำนวนมากเข้าไปในสิ่งที่โปรแกรมเมอร์ส่วนใหญ่ไม่สนใจมากนัก
เพื่อนำมาใช้แตกต่างกันเล็กน้อย: รูปแบบจัดการกับสิ่งต่าง ๆ ที่เหมือนกันระหว่างโปรแกรมมากมาย - แต่สิ่งที่ทำให้โปรแกรมน่าสนใจจริงๆคือมันแตกต่างจากโปรแกรมอื่น ๆ อย่างไร
สรุป
รูปแบบการออกแบบล้มเหลวเนื่องจาก:
- พวกเขาไม่สามารถบรรลุมวลวิกฤต
- ความแตกต่างระหว่างรูปแบบไม่เพียงพอที่จะรับประกันความชัดเจน
- พวกเขาส่วนใหญ่จัดการกับส่วนของรหัสเกือบไม่มีใครสนใจจริง ๆ อยู่แล้ว