Christopher Alexander says: “Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice”
A design pattern names, abstracts, and identifies the key aspects of a common structure that make it useful for creating a reusable object-oriented design. The design pattern identifies the participating classes and instances, their roles and collaborations and the distribution of responsibilities. Each design pattern focuses on a particular object oriented design problem or issue. It describes when it applies, whether it can be applied in view of other design constraints, and the consequences and trade-offs of its use.
The Design Catalog contains 23 design patterns. These design patterns are classified based on the criterion, called purpose. Patterns can have either creational, structural or behavioral purpose.
Scope |
|
Purpose |
||
Creational |
Structural |
Behavioral |
||
Class |
Factory Method |
Adapter |
Interpreter |
|
Object |
· Abstract Factory · Builder · Prototype · Singleton |
· Adapter · Bridge · Composite · Decorator · Façade · Flyweight · Proxy |
· Chain of Responsibility · Command · Iterator · Mediator · Observer · State · Strategy · Visitor |
Creational patterns concern the process of object creation. Structural patterns deal with the composition of classes or objects. Behavioral patterns characterize the way in which classes or objects interact and distribute responsibility
Some of the design patterns implemented in the project are:
Usage of these patterns in the project are explained in detail in the following pages.