Design pattern WATTANAPONG SUTTAPAK Software Engineering, School of Information Communication Technology, University of PHAYAO
จุดประสงค์การเรียนรู้ เข้าใจถึงความหมายของแบบรูปการออกแบบ เข้าใจถึงที่มาและความสำคัญของแบบรูปการออกแบบ จำแนกแบบรูปการออกแบบทั้ง 3 ประเภทได้
Design pattern ถูกพัฒนาขึ้นมาจากกลุ่มของคนสี่คน(Gang of four) โดยถูกเรียบเรียงใน หนังสือ เรื่อง “Design Pattern : Elements of Reusable Object-Oriented Software” (Gamma, et. al. 1995) จุดประสงค์เพื่อช่วยแก้ปัญหาในด้านการเขียนโปรแกรมเชิงวัตถุ โดย การสร้างรูปแบบของความสัมพันธ์ของคลาส มีทั้งหมด 23 รูปแบบ โดยสามารถแบ่งกลุ่มเป็น 3 กลุ่มได้แก่ 1. Creational ตามการสร้างวัตถุหรือคลาส 2. Structural ตามส่วนประกอบของวัตถุหรือคลาส 3. Behavioral ตามความสัมพันธ์ระหว่างวัตถุหรือคลาส
Group of Design Pattern Creational Structural Behavioral Abstract factory Builder Factory Prototype Singleton Adapter Bridge Composite Decorator Façade Flyweight Proxy Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template method Visitor
Simuduck app Manc : simulation game, SimUDuck. The game can show : duck species swimming making quacking sound Initial designer of the system : OO techniques one Duck superclass was inherited to other duck
Simuduck app In the last year, company : under increasing pressure from competitors After brainstorming : big innovation
Simuduck app The Answer : Flying duck executive : flying duck can blow away from duck competitors
Simuduck app But something went horribly wrong... All of ducks can fly and quack
Simuduck app Solve : Override method RubberDuck DecoyDuck quack(){ do nothing… } display() fly(){ quack(){ squeak } display() fly(){ do nothing…
Simuduck app interface class inheritance not solved : executive want to update product every 6 months what’s the problem : some ducks can fly, quack, squeak,… interface class what do you thing about design?
Simuduck app What would you do if you were Manc?
Strategy Pattern Simuduck app