ถ้าเราเขียนโค้ดไปซักพัก เราจะพบว่า ปัญหาที่เราเจอจะเป็นเก่า ๆ เดิม ๆ ที่เราเคยเจอมา และแนวทางที่แก้ก็เป็นแนวทางเดิม ๆ เลยมีสิ่งที่เรียกว่า Design Patterns มันคือแนวทางในการเขียนโค้ดและแก้ไขปัญญหาถ้าเกิดปัญหา รวมไปถึงการออกแบบที่ดี โค้ดที่ได้คุณภาพ และรูปแบบที่เป็นมาตรฐาน สเกลได้ง่าย ง่ายต่อการใช้ซ้ำ และอื่น ๆ บลา ๆโดยที่เราจะพูดถึงเนี่ยมันมาจากหนังสือเรื่อง Design Patterns: Elements of Reusable Object-Oriented Software ที่เขียนโดย Gang of Four (GoF) Erich Gamma, Richard Helm, Ralph Johnson และ John Vlissides โดยแบ่งออกเป็น 23 Patterns โดยแบ่งออกเป็น 3 กลุ่ม
ตามการสร้างอ็อบเจกต์ (Creational)
ตามโครงสร้าง (Structural)
- Adapter
- Bridge
- Composite
- Decorator
- Façade
- Flyweight
- Proxy
ตามพฤติกรรม (Behavioral)
- Chain of responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State (เขียนบทความแล้วคลิก)
- Strategy
- Template method
- Visitor
สุดท้ายอย่าลืมว่า ทุกอย่างมีข้อดีข้อเสียของของมัน Design Patterns ที่เราใส่เราใส่เหตุผลเพราะอะไร ไม่ใช่ว่ามันเอะอะ ๆ ใส่เข้ามัน บางทีมันก็ Over Engineer เกิน หารสัดส่วนข้อดีข้อเสียให้ดี แต่ท้ายที่สุดแล้วอยู่ที่สถานการณ์และจิตศรัทธาและเลือกใช้ให้ดี ขอบคุณครับ