Professional Documents
Culture Documents
Design Patterns
Introduction to Design Patterns
Lecture Outline
What is A Pattern? Why Patterns? Software Patterns GoF Design Patterns Singleton (Object Creational Design Patterns)
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
Solution
Why Patterns?
Erich Gamma
Designing object-oriented software is hard and designing reusuable object-oriented software is even harder. Solution Pattern Class Object Pattern
Burapha University, 2001
Simple reusable design class such as a linked list, hash table, etc.
Burapha University, 2001
Object
Singleton
Case Study , , application interface application
Singleton
First Design approach : global data Encapsulation global data
Singleton
Second Design approach :
Company - CompanyName - CompanyAddress - CompanyRegistrationNumber
+ getCompanyDetails()
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; } }
Burapha University, 2001
Singleton
Third Design approach :
Company
- CompanyInstance : Company - CompanyName : String - CompanyAddress : String - CompanyRegistrationNumber : int + getCompanyInstance( ) : Comapany + getCompanyDetails() : String
Company instance Class Operation (Static Operation ) Object Identifier Burapha University, 2001
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; } Burapha University, 2001 }
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"); }
Burapha University, 2001
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()); } } }
not null!!! Company@256a7c Company., Ltd. Burapha Unviersity 99999 not null!!! Company@256a7c Company., Ltd. Burapha Unviersity 99999
Summary
What is A Pattern? Why Patterns? Software Patterns GoF Design Patterns Singleton (Object Creational Design Patterns)