Design Patterns
Design Patterns เป็นชุดของวิธีการแก้ไขปัญหาที่ใช้บ่อยในวิศวกรรมซอฟต์แวร์ ซึ่งออกแบบมาเพื่อเพิ่มความสามารถในการนำกลับมาใช้ใหม่และความยืดหยุ่นของโค้ด โดยเฉพาะในการแก้ปัญหาที่มีลักษณะเดียวกันและมีความซับซ้อน โดยมีรูปแบบการใช้งานที่เป็นไปตามหลักการที่ได้รับการยอมรับว่าเป็นวิธีการที่ดีในการแก้ปัญหาลักษณะนั้นๆ
ประเภทของ Design Patterns
Design Patterns ที่ออกแบบโดย Gang of Four ประกอบด้วย 23 รูปแบบ ซึ่งแบ่งออกเป็น 3 กลุ่มหลักๆ ดังนี้:
- Creational Patterns: เกี่ยวข้องกับวิธีการสร้าง object
- Structural Patterns: เกี่ยวข้องกับการจัดโครงสร้าง class และ object
- Behavioral Patterns: เกี่ยวข้องกับการสื่อสารและการทำงานร่วมกันระหว่าง object
ซึ่ง patterns ทั้งหมดมีการอธิบายอย่างละเอียดรวมทั้งมีภาพประกอบในเวบไซต์ Refactoring Guru แต่ถ้ายังไม่มีเวลาศึกษาทั้งหมด สามารถเริ่มต้นจาก Cheat sheet ด้านล่างนี้ได้เลย
Design Pattern Cheat Sheet
ผู้เขียน: คุณ เปิ้ล
ในบทความ Design Pattern Cheat Sheet มีสรุป Design Patterns ทั้ง 23 รูปแบบให้สั้นกระชับ เข้าใจง่าย มีรูปภาพประกอบพร้อมคำอธิบาย รวมทั้งข้อดีและข้อควรระวังของแต่ละ pattern ไว้ให้ด้วย แนะนำให้พิมพ์เก็บไว้ใช้อ้างอิงเวลาออกแบบ class และ object ได้เลย
ตัวอย่างการใช้ Design Patterns
- ใช้ Singleton Pattern ในการจัดการการเข้าถึงทรัพยากรที่ใช้ร่วมกัน เช่น การเชื่อมต่อฐานข้อมูล เพื่อหลีกเลี่ยงการสร้างหลาย instance ที่ไม่จำเป็น
- ใช้ Observer Pattern ในการออกแบบระบบที่ต้องการการแจ้งเตือนและการตอบสนองต่อการเปลี่ยนแปลงของสถานะ เช่น ในระบบการแจ้งเตือน (notification system)
- ใช้ Factory Method เพื่อสร้างอ็อบเจ็กต์ในลักษณะที่ทำให้การสร้างอ็อบเจ็กต์นั้นยืดหยุ่นและสามารถปรับเปลี่ยนได้ตามความต้องการ