งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Burapha University, 2001 Object-Oriented Analysis and Design Design Patterns Introduction to Design Patterns Week #9 Jarungjit Parnjai.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Burapha University, 2001 Object-Oriented Analysis and Design Design Patterns Introduction to Design Patterns Week #9 Jarungjit Parnjai."— ใบสำเนางานนำเสนอ:

1 Burapha University, 2001 Object-Oriented Analysis and Design Design Patterns Introduction to Design Patterns Week #9 Jarungjit Parnjai

2 Burapha University, 2001 Object-Oriented Analysis and Design Lecture Outline What is A Pattern? Why Patterns? Software Patterns GoF Design Patterns Singleton (Object Creational Design Patterns)

3 Burapha University, 2001 Object-Oriented Analysis and Design What is A Pattern? A Pattern ถูกใช้ในงานของสถาปนิก ชื่อ Christopher Alexander Alexander ศึกษาแนวทางการปรับปรุง กระบวนการออกแบบอาคาร และ สิ่งก่อสร้าง “Each pattern is a three-part rule, which expresses a relation between a certain context, a problem and a solution.” definition : “A solution to a problem in a context”

4 Burapha University, 2001 Object-Oriented Analysis and Design A Solution to a Problem in a Context Context สถานการณ์ที่เกิดปัญหาการออกแบบ ขึ้น Problem ปัญหาที่เกิดขึ้นซ้ำๆ กันใน Context Solution แนวทางการแก้ปัญหาที่พิสูจน์แล้วว่าใช้ งานได้จริง ระบุส่วนผสมขององค์ประกอบเพื่อสร้าง ความสมดุลของแนวทางการแก้ปัญหา

5 Burapha University, 2001 Object-Oriented Analysis and Design Why Patterns? Erich Gamma “Designing object-oriented software is hard and designing reusuable object-oriented software is even harder.” นักออกแบบที่เชี่ยวชาญนำใช้ Solution ที่ สามารถทำงานได้ผลในอดีตกลับมาใช้ ไหม่ โครงสร้างของระบบเชิงวัตถุที่ดีจะมี Pattern ของ Class และ Object เกิดขึ้น ซ้ำแบบเดิม ความรู้เกี่ยวกับ Pattern ที่สามารถทำงาน ได้ผลในอดีต ทำให้นักออกแบบระบบ สามารถทำงานได้อย่างมีประสิทธิผล และ ทำให้เกิดความยืดหยุ่นในการออกแบบ และนำมาใช้ใหม่

6 Burapha University, 2001 Object-Oriented Analysis and Design Software Patterns History CunningHam และ Beck ใช้ แนวคิดของ Alexander ในการพัฒนา Pattern Language สำหรับ Smalltalk Gang of Four (Gamma, Helm, Johnson และ Vlissides ; GoF) เริ่มต้น รวบรวม catalog ของ design pattern Bruce Anderson จัด Patterns Workshop ครั้งแรกขึ้นที่ OOPSLA Kent Back และ Grady Booch ให้การสนับสนุน meeting ครั้งแรกของ Hillside Group จัดประชุม Pattern Languages of Programs (PLoP) ครั้งแรก GoF ตีพิมพ์หนังสือ “Design Pattern”

7 Burapha University, 2001 Object-Oriented Analysis and Design Types of Software Patterns Analysis Design Organizational Process Project Planning Configuration Management

8 Burapha University, 2001 Object-Oriented Analysis and Design Types of Software Patterns Software Pattern 3 ประเภท (Riehel และ Zullighoven) Conceptual Pattern Pattern whose form is described by means of terms and concepts from the application domain. Design Pattern Pattern whose form is described by means of software design constructs such as objects. Classes, inheritance and aggregation. Programming Pattern Pattern whose form is described by means of programming langugage

9 Burapha University, 2001 Object-Oriented Analysis and Design Design Patterns Levels of Abstraction Complex design for an entire application or subsystem Solution to a general design problem in a particular context Simple reusable design class such as a linked list, hash table, etc. More Abstract More Concrete

10 Burapha University, 2001 Object-Oriented Analysis and Design GoF Classification of Design Patterns GoF Design Patterns อยู่ในตรงกลางของ Levels of Abstraction “ A design pattern names, abstracts, and identifies key aspects of a common design structure that makes it useful for creating a reusable object- oriented design.” GoF Design Pattern “description of communicating objects and classes that are customized to solve a general design problem in a particular context.”

11 Burapha University, 2001 Object-Oriented Analysis and Design GoF Design Patterns Purposes - what a pattern does Creational Patterns เกี่ยวกับ กระบวนการสร้าง Object Structural Patterns เกี่ยวกับโครงสร้าง และองค์ประกอบของ Class และ Object Behavioral Patterns เกี่ยวกับ ปฏิสัมพันธ์ระหว่าง Class และ Object Scope - what the pattern applies to Class Patterns เน้นความสัมพันธ์ระหว่าง Class และ Subclass ซึ่งเกี่ยวข้องกับการ นำ Inheritance กลับมาใช้ใหม่ Object Patterns เน้นความสัมพันธ์ ระหว่าง Object ซึ่งเน้นการนำ Composition กลับมาใช้ใหม่

12 Burapha University, 2001 Object-Oriented Analysis and Design GoF Design Patterns Class Object Scope Purpose CreationalStructuralBehavioral Factory Method Abstract Factory Builder Prototype Singleton Adapter Abstract Bridge Composite Façade Flyweight Proxy Interpreter Template Method Chain of Responsibility Command Iterator Mediator Memento State Strategy

13 Burapha University, 2001 Object-Oriented Analysis and Design Design for Change Creating an object by specifying a class explicitly Abstract Factory, Factory Method, Prototype Dependence on specific operation Chain of Responsibility, Command Dependence on h/w and s/w platforms Abstract Factory, Bridge Dependence on object representations or implementations Abstract Factory, Bridge, Memento, Proxy Algorithm Dependencies Builder, Iterator, Strategy, Template Method, Visitor

14 Burapha University, 2001 Object-Oriented Analysis and Design Design for Change (Continued) Tight Coupling Abstract factory, Bridge, Chain of Responsibility, Command, Façade, Mediator, Observer Extending functionality of subclassing Bridge, Chain of Responsibility, Composite, Decorator, Observer, Strategy Inability to alter classes conveniently Adapter, Decorator, Visitor

15 Burapha University, 2001 Object-Oriented Analysis and Design GoF Essential Elements of Design Patterns Pattern Name ชื่อสั้น และมีความหมาย เอื้อประโยชน์ใน การสื่อสารภายในทีมผู้พัฒนา Problem problem และ context ที่ใช้ใน Pattern นี้ เงื่อนไขที่ต้องมีก่อนที่จะใช้ Pattern นี้ Solution คำอธิบายของ Element ที่ประกอบเป็น Design Pattern เน้นที่ relationship responsibilities และ collaboration ไม่ใช่ concrete design หรือการ implemenation แต่เป็น abstract description Consequences Pros และ Cons ของการใช้ pattern ซึ่ง รวมถึงผลกระทบต่างๆ

16 Burapha University, 2001 Object-Oriented Analysis and Design GoF Pattern Template Pattern Name และ Classification ชื่อสั้น และมีความหมาย สำหรับ Pattern และ ประเภทของ Pattern Intent ประโยคสั้นๆ ที่อธิบายหน้าที่การทำงาน ของ pattern Also Known As ชื่ออื่นที่เป็นที่รู้จักของ Pattern นี้ Motivation สถานการณ์ที่ใช้ในการจำลองเหตุการณ์ที่ นำ Pattern ไปใช้ประโยชน์ Applicability แนวทาง และ เทคนิคสำหรับการ implement

17 Burapha University, 2001 Object-Oriented Analysis and Design GoF Pattern Template (Continued) Structure การนำเสนอ pattern โดยใช้รูปภาพ Participants Class และ Object ที่มีส่วนร่วมใน pattern นี้ Collaborations การปฏิสัมพันธ์ระหว่าง participant เพื่อ ทำหน้าที่ที่ตัวเองมี responsibilities Consequences Pros และ Cons ของการเลือกใช้ Pattern นี้ Implementation แนวทาง และ เทคนิคสำหรับการ implement

18 Burapha University, 2001 Object-Oriented Analysis and Design GoF Pattern Template (Continued) Sample Code ส่วนของ Code ที่เป็นตัวอย่างสำหรับการ implement Known Uses ตัวอย่างของ Pattern ในระบบที่มีการใช้ งานจริง Relatted Patterns Patterns อื่นที่ใกล้เคียงกับ Pattern นี้

19 Burapha University, 2001 Object-Oriented Analysis and Design Singleton Design Pattern

20 Burapha University, 2001 Object-Oriented Analysis and Design Singleton Case Study พิจารณาบริษัทแห่งหนึ่งต้องการพัฒนา ระบบ ที่ต้องการเก็บข้อมูลต่างๆ เกี่ยวกับ บริษัทได้แก่ ชื่อ, ที่อยู่ของสำนักงานใหญ่, ข้อมูลการจดทะเบียนของบริษัท และ สามารถนำข้อมูลเหล่านั้นมาแสดงผ่าน ทาง application interface และพิมพ์ รายงาน ข้อมูลต่างๆ ควรเก็บอยู่ในที่ใดที่หนึ่ง ภายใน application แต่สามารถถูก นำไปใช้โดยวัตถุที่แตกต่างกัน หลายๆ วัตถุ

21 Burapha University, 2001 Object-Oriented Analysis and Design Singleton First Design approach : อาจออกแบบให้สร้าง global data ภายใน ที่สามารถเข้าถึงได้จากวัตถุใดๆ ภายนอก ละเมิดกฏของ Encapsulation การเปลี่ยนแปลงใดๆที่เกิดขึ้นกับ โครงสร้างข้อมูลที่เป็น global data มี ผลกระทบถึงวัตถุที่เรียกใช้ข้อมูลเหล่านั้น

22 Burapha University, 2001 Object-Oriented Analysis and Design Singleton Second Design approach : วัตถุใดๆ ที่ต้องการเรียกใช้ วัตถุ “Company” ต้องรู้ Object Identifier ( อาจอยู่ในรูปของตัวแปรอ้างอิง ) ไปยัง วัตถุ Object Identfier ต้องประกาศให้เป็น global ละเมิดกฏของ Encapsulation!!! Company - CompanyName - CompanyAddress - CompanyRegistrationNumber + getCompanyDetails()

23 Burapha University, 2001 Object-Oriented Analysis and Design Singleton Second Design approach : public class Company { private String name; private String address; private String regNumber; public Company(String n, String a, String r) { name = n; address = a; regNumber = r; } public String getCompanyName() { return name; } public String getCompanyAddress() { return address; } public String getCompanyRegistrationNumber() { return regNumber; }

24 Burapha University, 2001 Object-Oriented Analysis and Design Singleton Third Design approach : คลาส “Company” มีเพียง instance เดียวเท่านั้น ใช้ Class Operation (Static Operation ในจาวา ) ในการเข้าถึง Object Identifier Company - CompanyInstance : Company - CompanyName : String - CompanyAddress : String - CompanyRegistrationNumber : int + getCompanyInstance( ) : Comapany + getCompanyDetails() : String

25 Burapha University, 2001 Object-Oriented Analysis and Design Singleton Third Design approach : public class Company { private static Company instance = new Company("Company., Ltd.", "Burapha Unviersity", "99999"); private String name; private String address; private String regNumber; private Company(String n, String a, String r) { name = n; address = a; regNumber = r; } public static Company getCompanyInstance() { return instance; } public String getCompanyName() { return name; } public String getCompanyAddress() { return address; } public String getCompanyRegistrationNumber() { return regNumber; }

26 Burapha University, 2001 Object-Oriented Analysis and Design Singleton Third Design approach : public class TestCompany { public static void main(String[] args) { Company instance1 = Company.getCompanyInstance(); if (instance1 == null) { System.out.println("null!!!"); } else { System.out.println("not null!!!"); System.out.println(instance1); System.out.println(instance1.getCompanyName()); System.out.println(instance1.getCompanyAddress()); System.out.println(instance1.getCompanyRegistrationNumber()+"\n"); }

27 Burapha University, 2001 Object-Oriented Analysis and Design Company instance2 = Company.getCompanyInstance(); if (instance2 == null) { System.out.println("null!!!"); } else { System.out.println("not null!!!"); System.out.println(instance2); System.out.println(instance2.getCompanyName()); System.out.println(instance2.getCompanyAddress()); System.out.println(instance2.getCompanyRegistrationNumber()); }

28 Burapha University, 2001 Object-Oriented Analysis and Design not null!!! Company., Ltd. Burapha Unviersity not null!!! Company., Ltd. Burapha Unviersity 99999

29 Burapha University, 2001 Object-Oriented Analysis and Design Singleton Design Pattern Pattern Name Singleton / Object creational Problem class หนึ่ง class ใดมีเพียง instance เดียวเท่านั้น และกำหนด global point ที่ ใช้ในการเข้าถึง instance ของ class นั้น Context สร้าง global data ภายใน ที่สามารถ เข้าถึงได้จากวัตถุใดๆภายนอก หรือ ประกาศ Object Identifier เป็น global หรือใช้ class operation ในการเข้าถึง Object identifier ที่ถูกสร้างโดยคลาส รูปแบบอื่นๆ ของ Singleton Pattern อาจ ขึ้นอยู่กับสถานการณ์ตอนเริ่มต้นสร้าง instance

30 Burapha University, 2001 Object-Oriented Analysis and Design Solution สร้าง class ที่มี Class Operation ในการ ให้ค่า instance ของ class อาจสร้าง instance ของ class ไว้ตั้งแต่ เริ่มแรกที่มีการ load class เข้ามาในระบบ หรืออาจสร้าง instance ของ class ในครั้ง แรกที่มีการเรียก Class Operation เพื่อ สอบถามค่า instance ของ class Consequences มีการควบคุมการเข้าถึง object instance ที่ถูก encapsulate ไว้ใน class ไม่จำเป็นต้องประกาศ name space ไว้ เป็น global อาจมีการทำ subclass ของ Singleton class และให้ user สามารถเลือกว่า ต้องการสร้าง subclass ใดเมื่อตอน run- time อาจมีการดัดแปลงให้มีการสร้าง instance ที่มากกว่า 1 instance ภายในคลาส ตาม ต้องการ Singleton Design Pattern

31 Burapha University, 2001 Object-Oriented Analysis and Design Summary What is A Pattern? Why Patterns? Software Patterns GoF Design Patterns Singleton (Object Creational Design Patterns)


ดาวน์โหลด ppt Burapha University, 2001 Object-Oriented Analysis and Design Design Patterns Introduction to Design Patterns Week #9 Jarungjit Parnjai.

งานนำเสนอที่คล้ายกัน


Ads by Google