Professional Documents
Culture Documents
Obligatory course
A brief history
1979: Introduce the notion of pattern and pattern
language used in architecture
Developing software is
hard
Developing reusable
software is even harder
Frameworks
Together design
The pattern is at the same time a thing, which happens in the world,
and the rule which tells us how to create that thing, and when we must
create it. (R. Gabriel)
Patterns of Learning
Design Patterns
Design
Patterns
They are particularly useful for articulating how and why to resolve nonfunctional forces
Patterns
What is the problem and the context where we would use this pattern?
What are the conditions that must be met before this pattern should be used?
Solution
Creational Patterns
Structural Patterns
Behavioral Patterns
Class Patterns
Object Patterns
Creational Patterns
Factory Method
Method
Abstract Factory
Factory for
Builder
Factory for
Prototype
Factory for
Singleton
Factory for
Structural Patterns
Adapter
Translator adapts
Bridge
Abstraction for
Composite
Structure for
Decorator
Decorator extends
an object transparently
Faade
Faade
Flyweight
Many
Proxy
One
Behavioral Patterns
Chain of Responsibility
Request
Command
Request
as first-class object
Interpreter
Language interpreter for
a small grammar
Iterator
Aggregate elements
Mediator
Mediator coordinates interactions between
Memento
Snapshot
Observer
Dependents
its associates
State
Object whose
Strategy
Abstractions for
Template Method
Algorithms
Visitor
Operations applied
structure
Patterns leave out too much to be useful to someone who really wants
to understand
It
it must be useful
Have a context
Recursive
It
must be relevant in
other situations
Teach
It
Solve a problem
I.e.,
Have a name
It
must be referred to
consistently