Section 11: Design Pattern และกลุ่ม Creational
- ที่มาของ Design Pattern จาก Gang of Four และวิธีเลือกใช้
- Singleton และทางเลือกด้วย ES Module
- Factory Method สำหรับสร้าง Object ตามเงื่อนไข
- Builder สำหรับ Object ที่มีค่าตั้งต้นหลายตัว
- Lab: Factory สร้างช่องทางแจ้งเตือนหลายแบบ
Section 12: Lab: Structural Pattern
- Composite สำหรับข้อมูลแบบต้นไม้ เช่น เมนูและหมวดหมู่
- Adapter สำหรับเชื่อมกับ API หรือไลบรารีที่หน้าตาต่างกัน
- Decorator สำหรับเพิ่มความสามารถโดยไม่แก้ Class เดิม
- Facade สำหรับซ่อนระบบย่อยที่ซับซ้อน
- Proxy ด้วย Proxy Object ของ JavaScript
Section 13: Behavioral Pattern
- Observer ด้วย EventTarget ฝั่งเบราว์เซอร์และ EventEmitter ฝั่ง Node.js
- Strategy สำหรับสลับวิธีคำนวณตอนทำงาน
- Command สำหรับงานที่ต้อง Undo ได้
- State สำหรับ Object ที่พฤติกรรมเปลี่ยนตามสถานะ
- Lab: สถานะคำสั่งซื้อด้วย State และ Observer
Section 14: Lab: Test และ Refactor โค้ด OOP
- เขียน Unit Test ให้ Class ด้วย Node.js Test Runner
- ใช้ Dependency Injection และ Mock เพื่อทดสอบแยกส่วน
- Refactor โค้ดแบบฟังก์ชันยาว ๆ ให้เป็น Class ทีละขั้นโดยมี Test คุม
- ใช้ AI Assistant ช่วยเสนอการ Refactor แล้วตรวจผลด้วย Test
- Lab: Refactor ระบบคำนวณส่วนลดจากโค้ดเดิม
Section 15: Workshop: Capstone ออกแบบระบบด้วย OOP และ Pattern
- วิเคราะห์โจทย์ระบบจองหรือระบบคำสั่งซื้อและเขียน Class Diagram
- เลือก Pattern ที่เหมาะกับแต่ละส่วนพร้อมเหตุผล
- เขียนโค้ดตามหลัก SOLID พร้อม Test ส่วนสำคัญ
- นำเสนอผลงานและรีวิวการออกแบบร่วมกัน