| GoF Creational Patterns |
| Abstract Factory |
Sets of methods to make various objects. |
| Builder |
Make and return one object various ways. |
| Factory Method |
Methods to make and return components of one object various ways. |
| Prototype |
Make new objects by cloning the objects which you set as prototypes. |
| Singleton |
A class distributes the only instance of itself. |
|
|
| GoF Structural Patterns |
| Adapter |
A class extends another class, takes in an object, and makes the taken object behave like the extended class. |
| Bridge |
An abstraction and implementation are in different class hierarchies. |
| Composite |
Assemble groups of objects with the same signature. |
| Decorator |
One class takes in another class, both of which extend the same abstract class, and adds functionality. |
| Facade |
One class has a method that performs a complex process calling several other classes. |
| Flyweight |
The reusable and variable parts of a class are broken into two classes to save resources. |
| Proxy |
One class controls the creation of and access to objects in another class. |
| Try the Design Patterns Video Tutorial from SourceMaking |
| GoF Behavorial Patterns |
| Chain Of Responsibility |
A method called in one class can move up a hierarchy to find an object that can properly execute the method. |
| Command |
An object encapsulates everything needed to execute a method in another object. |
| Interpreter |
Define a macro language and syntax, parsing input into objects which perform the correct opertaions. |
| Iterator |
One object can traverse the elements of another object. |
| Mediator |
An object distributes communication between two or more objects. |
| Memento |
One object stores another objects state. |
| Observer |
An object notifies other object(s) if it changes. |
| State |
An object appears to change its` class when the class it passes calls through to switches itself for a related class. |
| Strategy |
An object controls which of a family of methods is called. Each method is in its` own class that extends a common base class. |
| Template |
An abstract class defines various methods, and has one non-overridden method which calls the various methods. |
| Visitor |
One or more related classes have the same method, which calls a method specific for themselves in another class. |
| More Java Design Pattern |
| Comments and Questions |