หากต้องการเพิ่มคำอุปมาอื่นในซุปรูปแบบการออกแบบคือ Clippy ผู้ช่วย Microsoft Office "คุณดูเหมือนจะทำสิ่งเดียวกันกับเรื่องทั้งหมดฉันจะช่วยคุณได้ด้วยการเสนอ Iterator หรือผู้เยี่ยมชม?"
รูปแบบที่ดีของรูปแบบเหล่านั้นจะระบุเมื่อมีประโยชน์ที่จะทำอะไรแบบเดียวกับที่เคยทำมาหลายครั้งสิ่งที่ผิดพลาดที่คุณทำในครั้งแรกที่คุณลองทำและวิธีการทั่วไปที่พบเพื่อหลีกเลี่ยงความผิดพลาดเหล่านั้น . ดังนั้นคุณอ่านรูปแบบการออกแบบ (หรือตรวจสอบจากหน่วยความจำ) และจากนั้นคุณสามารถทำงานของคุณได้ สิ่งที่คุณไม่สามารถทำได้คือการใช้เพียง Clippy และพ่อมด
ที่คนที่ไม่มีประสบการณ์สามารถไปผิดและเขียนโค้ดที่ไม่คำนึงถึงความเป็นจริงคือเมื่อพวกเขาคิดว่ารายการรูปแบบการออกแบบของพวกเขานั้นเป็นรายการที่สมบูรณ์ของแนวทางที่เป็นไปได้ทั้งหมดในการแก้ปัญหาในซอฟต์แวร์และลองออกแบบรหัสด้วยการเชื่อมโยงการออกแบบร่วมกัน รูปแบบจนกว่าจะเสร็จ กลวิธีที่น่าสงสารอีกอย่างหนึ่งที่พบในป่าคือการออกแบบรองเท้าให้เข้ากับสถานการณ์ที่ไม่เหมาะกับมันมากนักบนพื้นฐานของรูปแบบการออกแบบ "เป็นแนวปฏิบัติที่ดีที่สุด" ไม่มันอาจจะใช่หรือไม่ใช่วิธีปฏิบัติที่ดีที่สุดสำหรับชั้นเรียนของปัญหาที่แก้ได้จริง ๆแต่มันก็ไม่ใช่วิธีปฏิบัติที่ดีที่สุดสำหรับปัญหาที่ล้มเหลวในการแก้ปัญหาหรือสำหรับปัญหาที่แก้ได้โดยการแนะนำความซับซ้อนที่ไม่จำเป็น .
แน่นอนว่ามันเป็นไปได้สำหรับใครบางคนที่จะหลีกเลี่ยงรูปแบบบนพื้นฐานของ YAGNI จากนั้นตระหนักว่าพวกเขาต้องการมันและคลานไปหาทางออกปกติ นี่เป็นเรื่องปกติที่แย่กว่าการตระหนักถึงความต้องการตั้งแต่เริ่มต้นและเป็นสาเหตุที่แม้แต่ในการพัฒนาแบบว่องไวมันก็น่าหงุดหงิดเมื่อความต้องการที่คาดการณ์ได้ทั้งหมดไม่ได้ถูกค้นพบเร็ว ฉันไม่สามารถเป็นโปรแกรมเมอร์ C ++ เพียงคนเดียวที่รู้สึกสนุกอย่างมากที่ Java เริ่มปฏิเสธคอนเทนเนอร์ทั่วไปว่าซับซ้อนโดยไม่จำเป็นจากนั้นจึงปิดใช้งานพวกเขาในภายหลัง
ดังนั้นจึงเป็นความผิดพลาดแน่นอนที่จะหลีกเลี่ยงการเขียน Iterator บนหลักการเพราะคุณต้องการหลีกเลี่ยงรูปแบบการออกแบบ
การเพิ่มเขตข้อมูลใหม่ลงใน UI / ฐานข้อมูล / ชั้นข้อมูลใช้เวลาทำ 2-3 ชั่วโมงโดยที่ในรหัสของเขาใช้เวลา 30 นาที
คุณไม่สามารถโต้แย้งกับสิ่งนั้นได้จริง: โดยการวัดนี้การออกแบบของเขาดีกว่าอีกอันหนึ่ง ไม่ว่าจะเป็นเพราะเขาหลีกเลี่ยงรูปแบบการออกแบบเป็นที่น่าสงสัย แต่ฉันคิดว่ามันน่าจะเป็นเพราะเขาพิจารณาประเด็น "โลกแห่งความจริง" ที่ถูกต้องเมื่อออกแบบมันและด้วยประโยชน์จากประสบการณ์ที่ดีกว่างานของเขา อุดมคติสูง
ดังนั้นเขาจึงรู้ว่ารูปแบบใด ๆ ที่คุณต้องสัมผัสกับจุดต่าง ๆ มากมายในรหัสเพื่อเพิ่มเขตข้อมูลเป็นรูปแบบที่ไม่ดีสำหรับงาน "ทำให้ง่ายต่อการเพิ่มเขตข้อมูล" และเขาไม่ได้ใช้รูปแบบเหล่านั้น สถาปัตยกรรมแบบเลเยอร์สามารถทนทุกข์ในเรื่องนั้นได้และเป็นความผิดที่จะใช้รูปแบบการออกแบบโดยไม่เห็นคุณค่าของข้อเสีย
เมื่อเทียบกับที่ใช้เวลานานในการเขียน UI ใหม่ในการออกแบบของเขาและใช้เวลานานเท่าใดในสถาปัตยกรรมแบบเลเยอร์ หากโครงการเรียกร้องให้เขาสร้างและปรับใช้ UIs ใหม่อย่างต่อเนื่องผ่านแบบจำลองข้อมูลคงที่แทนที่จะเพิ่มเขตข้อมูลอย่างต่อเนื่องหวังว่าเขาจะได้รับการออกแบบมาเพื่อสิ่งนั้นแทน หรือเช่นกัน แต่เพื่อประโยชน์ทั้งหมดของการพูดว่า "เรากำลังทำเปรียว" เศร้าไม่ได้หมายความว่าคุณจะไม่ต้องทำการค้าอีก!
การเลือกจากเมนูของรูปแบบการออกแบบอย่างแน่นอนสามารถหยุดคุณคิดเกี่ยวกับข้อกังวลที่สำคัญที่สุด แต่การรับรู้เมื่อคุณเขียนผู้เยี่ยมชมและจัดทำเอกสารหรือตั้งชื่อมันว่า "ผู้เข้าชม" เพื่อช่วยให้ผู้อ่านได้รับอย่างรวดเร็วไม่ได้ไปในทางใด ๆ การเขียน "นี่คือผู้เข้าชม" แทนที่จะบันทึกไว้อย่างถูกต้องเป็นข้อผิดพลาดที่แย่มากเพราะเหตุผลที่นักพัฒนาซอฟต์แวร์อาวุโสของคุณให้ - โปรแกรมเมอร์ไม่เข้าใจ แม้แต่โปรแกรมเมอร์ที่รู้ว่าผู้เยี่ยมชมต้องการข้อมูลอะไรมากกว่าแค่ "นี่คือผู้เยี่ยมชม"