รู้จักกับ Design Pattern - Creational (Part 1/3)
[ สามารถดู video ของหัวข้อนี้ก่อนได้ ดู video
Design Pattern คืออะไร ?
Design Pattern คือแนวคิดหรือแบบแผนที่สร้างขึ้นเพื่อแก้ไขปัญหาที่เกิดขึ้นในการออกแบบและพัฒนาซอฟต์แวร์ โดยมีวัตถุประสงค์ในการเพิ่มความยืดหยุ่นในการจัดการกับปัญหาต่างๆ ที่พบในการพัฒนา software และช่วยให้สามารถนำไปใช้ในสถานการณ์ที่คล้ายคลึงกันได้
เพื่อให้ง่ายต่อการเรียนรู้ บทความชุดนี้ (รวมถึงใน Video) จะแบ่งออกเป็นทั้งหมด 3 ตอนคือ
- Creational Pattern (รูปแบบการสร้างวัตถุ) (** ซึ่งก็คือตอนที่กำลังอ่านอยู่นี้) เป้าหมายของ Creational Pattern เป็นการสร้างวัตถุ (Object) อย่างมีระเบียบเรียบร้อย ตัวอย่างเช่น Singleton, Factory, Builder
- Structural Pattern (รูปแบบการสร้างโครงสร้าง) เน้นการสร้างโครงสร้างให้กับ Object ซึ่งช่วยให้ Object แต่ละตัวสามารถทำงานร่วมกันได้อย่างมีประสิทธิภาพ ตัวอย่างเช่น Adapter, Decorator, Composite
- Behavioral Pattern (รูปแบ บการทำงาน) เน้นการจัดการและควบคุมกระบวนการทำงานของ Object ตัวอย่างเช่น Observer, Strategy, Command
ซึ่ง Series สั้น 3 ตอนนี้ เราจะมาลงลึกทีละตัวในแต่ละหมวดหมู่กัน สำหรับใครยังไม่ได้ดูเรื่อง OOP สามารถย้อนดูก่อนได้ ที่นี่ (แนะนำให้ดูก่อน เพราะในหัวข้อนี้เราจะไม่ย้ำเรื่องคุณสมบัติของ OOP กันนะครับ)
Design pattern Creational คืออะไร ?
Design pattern Creational คือแนวคิดที่ใช้การสร้างวัตถุ (Object) อย่างมีระเบียบเรียบร้อย เพื่อเพิ่มความยืดหยุ่นในการจัดการกับปัญหาต่างๆ ที่พบในการพัฒนา software โดยรูปแบบที่นิยมใช้ที่จะขอนำเสนอในบทความนี้ มีทั้งหมด 5 แบบคือ
- Singleton รูปแบบที่รับประกันว่ามีเพียง instance เดียวของ class เท่านั้นที่ถูกสร ้างในระบบ
- Factory Method รูปแบบที่กำหนด interface สำหรับการสร้าง object และให้ class ย่อยเป็นผู้กำหนดประเภทของ Object ที่จะสร้าง
- Abstract Factory รูปแบบที่ขยายแนวคิดของ Factory Method โดยสร้างกลุ่มของ object ที่เกี่ยวข้องกันให้ใช้งานร่วมกันได้
- Builder รูปแบบที่ใช้สร้าง object ซึ่งช่วยให้สามารถสร้าง object ที่ซับซ้อนและมีค่าตั้งต้นที่หลากหลายได้โดยไม่ต้องสร้าง class ใหม่หรือแก้ไข code ของ class เดิมได้
- Prototype รูปแบบที่ช่วยสร้าง Object ใหม่โดยการคัดลอก Object ที่มีอยู่ได้
เช่นเดียวกับหัวข้อ OOP เราจะสื่อสารผ่านภาษา Typescript เนื่องจากเป็นภาษาที่ใช้งานเป็นจำนวนมากอีกหนึ่งภาษา และสื่อสารง่ายที่สุด เรามารู้จัก Design Pattern Creational แต่ละแบบกัน