Skip to content


A table of one-liners to help summarize the design patterns in this website.

Pattern Description
Abstract Factory Adds an abstraction over many other related objects that are created using other creational patterns.
Adapter An alternative interface over an existing interface.
Bridge The Bridge pattern is similar to the Adapter pattern except in the intent that you developed it.
Builder A creational pattern whose intent is to separate the construction of a complex object from its representation so that you can use the same construction process to create different representations.
Chain of Responsibility Pass an object through a chain of successor handlers.
Command An abstraction between an object that invokes a command, and the object that performs it. Useful for UNDO/REDO/REPLAY.
Composite A structural pattern useful for hierarchal management.
Decorator Attach additional responsibilities to an object at runtime.
Facade An alternative or simplified interface over other interfaces.
Factory Abstraction between the creation of an object and where it is used.
Flyweight Share objects rather than creating thousands of near identical copies.
Interpreter Convert information from one language to another.
Iterator Traverse a collection of aggregates.
Mediator Objects communicate through a Mediator rather than directly with each other.
Memento Save a copy of state and for later retrieval. Useful for UNDO/REDO/LOAD/SAVE.
Observer Pattern Manage a list of dependents and notifies them of any internal state changes.
Prototype Good for when creating new objects requires more resources than you need of have available.
Proxy A class functioning as an interface to another class or object.
Singleton A class that can be instanced at any time, but after it is first instanced, any new instances will point to the original instance.
State Alter an objects behavior by changing the handle of one of its methods to one of its subclasses dynamically to reflect its new internal state.
Strategy Similar to the State Pattern, except that the client passes in the algorithm that the context should then run.
Template Method An abstract class (template) that contains a method that is a series of instructions that are a combination of methods that can be overridden.
Visitor Pass an object called a visitor to a hierarchy of objects and execute a method on them.

Remember that design patterns will give you a useful and common vocabulary for when designing, documenting, analyzing, restructuring new and existing software development projects now and into the future.

Good luck and I hope that your projects become very successful.

Sean Bradley