Section 11: Design Pattern และ Creational Pattern
- Design Pattern คืออะไร ที่มาจาก Gang of Four และ 3 กลุ่มหลัก
- เมื่อไรควรใช้ Pattern และเมื่อไรภาษา Python มีทางที่ง่ายกว่า
- Singleton ด้วย __new__ เทียบกับ Object ระดับ Module และข้อควรระวัง
- Factory Method และ Registry ด้วย Dictionary ของ Class
- Lab: สร้างตัวเชื่อมต่อการชำระเงินจากค่าตั้งค่า
Section 12: Lab: Structural Pattern
- Composite สำหรับข้อมูลแบบต้นไม้ เช่น หมวดหมู่สินค้า
- Adapter เชื่อมไลบรารีภายนอกที่ Interface ไม่ตรงกัน
- Decorator Pattern เทียบกับ Decorator ของ Python
- Facade ซ่อนระบบย่อยที่ซับซ้อนไว้หลังเมธอดเดียว
- Lab: หมวดหมู่สินค้าหลายชั้นและตัวแปลงข้อมูลขนส่ง
Section 13: Lab: Observer และ Strategy
- Observer แจ้งเหตุการณ์ไปยังหลายส่วนโดยไม่ผูกกันแน่น
- Strategy สลับวิธีคำนวณขณะรันโปรแกรม
- ใช้ฟังก์ชันและ Callable แทน Class ในแบบ Python
- เลือกระหว่าง Strategy กับการสืบทอด
- Lab: แจ้งเตือนเมื่อสั่งซื้อ และส่วนลดหลายรูปแบบ
Section 14: Behavioral Pattern อื่นที่ใช้บ่อย
- Command เก็บคำสั่งไว้ทำซ้ำหรือยกเลิก (Undo)
- State เปลี่ยนพฤติกรรมตามสถานะของคำสั่งซื้อ
- Template Method กำหนดขั้นตอนหลักให้ Class ลูกเติม
- Iterator ด้วย Generator และ yield
- Lab: สถานะคำสั่งซื้อตั้งแต่รอชำระเงินจนจัดส่งสำเร็จ
Section 15: Workshop: Refactor สู่ OOP พร้อม Test
- เขียน Test ด้วย pytest และ Fixture ก่อนปรับโครงสร้าง
- ใช้ Test Double แทน Dependency ภายนอก
- ปรับสคริปต์ร้านค้าเดิมเป็น Class และ Pattern ทีละขั้น
- ใช้ AI Assistant ช่วยอธิบายและเสนอการ Refactor โดยตรวจผลเองทุกครั้ง
- Workshop: ระบบร้านค้าแบบ OOP ที่ผ่าน Test, Ruff และ mypy