Object Oriented Design 
Patterns 
Organization 
Opilo | By Hamid Alaee
Organizing Design Patterns by Purpose (review) 
• Creational (5) 
• Concerns object creation 
• Structural (7) 
• Deals with composition of classes or objects 
• Behavioral (11) 
• Characterizes ways in which classes or objects interact and distribute 
responsibility.
Organizing Design Pattern by Scope 
• Class Patterns (4) 
• Deal with relationships between classes and their subclasses 
• Relationships established through inheritance, so they are fixed at compile 
time (static) 
• Inheritance: white-box reuse 
• Object patterns (20) 
• Deal with object relationships (e.g. composition) 
• Relationships can be changed at runtime (dynamic) 
• Composition: Black-box reuse, to avoid breaking encapsulation, and 
implementation dependency
The Catalog of Design Patterns 
Scope / purpose Creational Structural Behavioral 
Class Factory Method Adapter Interpreter 
Template Method 
Object Abstract Factory 
Builder 
Prototype 
Singleton 
Adapter (object) 
Bridge 
Composite 
Decorator 
Façade 
Flyweight 
Proxy 
Chain of Responsibility 
Command 
Iterator 
Mediator 
Observer 
State 
Strategy 
Visitor
Six types of design patterns 
1. Creational class patterns defer some part of object creation to 
subclasses 
2. Creational object patterns defer some part of object creation to 
another object 
3. Structural class patterns use inheritance to compose classes 
4. Structural object patterns describe ways to assemble objects 
5. Behavioral class patterns use inheritance to describe algorithms 
and flow of control 
6. Behavioral object patterns describe how a group of objects 
cooperate to perform a task that no single object can carry out alone
Relation between Patterns 
• Patterns may be uses together 
• Command + Composite => MacroCommand 
• Command + Memento => Undoable Command 
• Command + Prototype => Copy of Command in the undo history 
• Some patterns are alternatives to one another 
• Prototype and Abstract Factory are competing patterns in some ways 
• Some patterns result in similar design although they have different intents 
• Decorator can be viewed as a degenerate Composite with only one component. 
• Decorator’s intent: adding additional responsibilities 
• Composite’s intent: object aggregation

Object Oriented Design Patterns

  • 1.
    Object Oriented Design Patterns Organization Opilo | By Hamid Alaee
  • 2.
    Organizing Design Patternsby Purpose (review) • Creational (5) • Concerns object creation • Structural (7) • Deals with composition of classes or objects • Behavioral (11) • Characterizes ways in which classes or objects interact and distribute responsibility.
  • 3.
    Organizing Design Patternby Scope • Class Patterns (4) • Deal with relationships between classes and their subclasses • Relationships established through inheritance, so they are fixed at compile time (static) • Inheritance: white-box reuse • Object patterns (20) • Deal with object relationships (e.g. composition) • Relationships can be changed at runtime (dynamic) • Composition: Black-box reuse, to avoid breaking encapsulation, and implementation dependency
  • 4.
    The Catalog ofDesign Patterns Scope / purpose Creational Structural Behavioral Class Factory Method Adapter Interpreter Template Method Object Abstract Factory Builder Prototype Singleton Adapter (object) Bridge Composite Decorator Façade Flyweight Proxy Chain of Responsibility Command Iterator Mediator Observer State Strategy Visitor
  • 5.
    Six types ofdesign patterns 1. Creational class patterns defer some part of object creation to subclasses 2. Creational object patterns defer some part of object creation to another object 3. Structural class patterns use inheritance to compose classes 4. Structural object patterns describe ways to assemble objects 5. Behavioral class patterns use inheritance to describe algorithms and flow of control 6. Behavioral object patterns describe how a group of objects cooperate to perform a task that no single object can carry out alone
  • 6.
    Relation between Patterns • Patterns may be uses together • Command + Composite => MacroCommand • Command + Memento => Undoable Command • Command + Prototype => Copy of Command in the undo history • Some patterns are alternatives to one another • Prototype and Abstract Factory are competing patterns in some ways • Some patterns result in similar design although they have different intents • Decorator can be viewed as a degenerate Composite with only one component. • Decorator’s intent: adding additional responsibilities • Composite’s intent: object aggregation