Please enable JavaScript.
Coggle requires JavaScript to display documents.
Desing Pattern - Coggle Diagram
Desing Pattern
แนะนำใช้ TypeScript / JS สำหรับ Design Pattern
ไม่ใช้วิธีการเขียน แต่เป็น ไอเดียการเขียน โดยใช้หลักการของ OOP ในการเขียน และช่วย design
ในกรณี ถ้าหากมีไอเดียหรือโจทย์ ประมาณนี้ design pattern จะสามารถรังสรรค์โค้ตออกมาเป็นแบบไหนได้บ้าง
OOP (การเขียนโปรแกรมเชิงวัตถุ) มีหลักการสำคัญ 4 ข้อ
Encapsulation (การปกปิดข้อมูล):
การซ่อนรายละเอียดภายในวัตถุ ทำให้ภายนอกเข้าถึงข้อมูลได้ผ่าน Method เท่านั้น
ตัวอย่าง: Getter/Setter สำหรับควบคุมการเข้าถึงข้อมูล
Abstraction (นามธรรม):
เน้นเฉพาะสิ่งสำคัญที่เกี่ยวข้องและซ่อนรายละเอียดที่ไม่จำเป็น
Inheritance (การสืบทอด):
วัตถุใหม่สามารถสืบทอดคุณสมบัติจากวัตถุเก่าได้ เพื่อการนำกลับมาใช้ซ้ำ
Polymorphism (พหุรูป):
วัตถุที่มีชื่อ Method เดียวกัน แต่พฤติกรรมต่างกันตามบริบทที่ใช้
จะแบ่งออกเป็น 3 ตอน
Creaional Pattern (รูปแบบการสร้า้งวัตถุ)
เกียวกับ การสร้าง Object ภายใต้ Class เท่านั้น
เพื่ออะไร
เพิ่มความยืดหยุน
มีระเบียบเรียบร้อย
ความสะดวก ง่ายดาย
เพื่อจัดดการกับโจทย์ที่แน่น การใช้ Object เป็นตัวหลัก
มี 5 patterns ด้วยกันในจัดการกับ Objects
Signleton
pattern
ที่รับประกันว่า มีเพียง instance เดียวของ class เท่านั้นที่ถูกสร้างในระบบ
instance คืออะไร
Blueprint ซึ่งเป็นโครงสร้างที่กำหนด
คุณสมบัติของ Object
1 more item...
พฤติกรรม ของ Object
1 more item...
วัตถุ (Object) ที่ถูกสร้างจาก Class
Singleton คือ object ที่สร้างมา คือสิ่งเดียว/อย่างเดียวใน class นี้ หรือ ในระบบนี้
Factory Method
pattern
กำหนด interface
สำหรับการสร้าง Object และให้ class ย่อย เป็นผู้กำหนดประเภทของ Object ที่จะสร้าง
เปรียบเทียบกับโรงงาน
ทำหน้าที่สร้าง object ที่เป็นประเภทเดียวักัน แต่ฟังค์ชันต่างกัน
Abstract Factory
pattern
เปรียบเทียบกับโรงงาน
สามารถสร้างของที่มี ลักษณะ ใกล้เคียงกัน ออกมาได้
Builder
pattern
สามารถ รวมคำสั่ง การสร้าง Object
มาไว้ในตัว คำสั่ง เดียวกัน
สามารถเรียกคำสั่งนี้ เพียงคำสั่งเดียว
สามารถ instance object พร้อมกับ ของทั้งหมดออกมาได้
เป็นลักษณะ ของการรวม ความซับซ้อน ของการสร้าง
เอาไว้ในตัวที่เป็น method ของ object นั้นๆ
Prototype
pattern
ที่ช่วยสร้าง object ใหม่ โดยการ clone/copy การคัดลอก Object เก่าออกมา
https://refactoring.guru/design-patterns/creational-patterns
Structural Pattern (รูปแบบการสร้างโครงสร้าง)
Behavioral Pattern (รูปแบบการทำงาน)