Design Patterns

Creational Patterns

  • [Coming Soon] Singleton: Ensures a class has only one instance and provides a global point of access to it.
  • [Coming Soon] Factory Method: Defines an interface for creating an object, but lets subclasses alter the type of objects that are created.
  • [Coming Soon] Abstract Factory: Provides an interface for creating families of related or dependent objects without specifying their concrete classes.
  • [Coming Soon] Builder: Separates the construction of a complex object from its representation so that the same construction process can create different representations.
  • [Coming Soon] Prototype: Specifies the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype.

Structural Patterns

  • [Coming Soon] Adapter: Converts the interface of a class into another interface clients expect.
  • [Coming Soon] Composite: Composes objects into tree structures to represent part-whole hierarchies.
  • [Coming Soon] Proxy: Provides a surrogate or placeholder for another object to control access to it.
  • [Coming Soon] Flyweight: Uses sharing to support large numbers of fine-grained objects efficiently.
  • [Coming Soon] Facade: Provides a unified interface to a set of interfaces in a subsystem.
  • [Coming Soon] Bridge: Decouples an abstraction from its implementation so that the two can vary independently.
  • [Coming Soon] Decorator: Adds additional responsibilities to an object dynamically.

Behavioral Patterns

  • [Coming Soon] Observer: Defines a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
  • [Coming Soon] Strategy: Defines a family of algorithms, encapsulates each one, and makes them interchangeable.
  • [Coming Soon] Command: Encapsulates a request as an object, thereby allowing for parameterization of clients with queues, requests, and operations.
  • [Coming Soon] Chain of Responsibility: Passes a request along a chain of handlers, where each handler decides either to process the request or to pass it to the next handler in the chain.
  • [Coming Soon] Mediator: Defines an object that encapsulates how a set of objects interact.
  • [Coming Soon] Memento: Without violating encapsulation, captures and externalizes an object's internal state so that the object can be restored to this state later.
  • [Coming Soon] State: Allows an object to alter its behavior when its internal state changes.
  • [Coming Soon] Visitor: Represents an operation to be performed on the elements of an object structure.
  • [Coming Soon] Template Method: Defines the skeleton of an algorithm in the superclass but lets subclasses override specific steps of the algorithm without changing its structure.
  • [Coming Soon] Interpreter: Given a language, defines a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language.
Category Pattern Description
Creational Patterns [Coming Soon] Singleton Ensures a class has only one instance and provides a global point of access to it.
[Coming Soon] Factory Method Defines an interface for creating an object, but lets subclasses alter the type of objects that are created.
[Coming Soon] Abstract Factory Provides an interface for creating families of related or dependent objects without specifying their concrete classes.
[Coming Soon] Builder Separates the construction of a complex object from its representation so that the same construction process can create different representations.
[Coming Soon] Prototype Specifies the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype.
Structural Patterns [Coming Soon] Adapter Converts the interface of a class into another interface clients expect.
[Coming Soon] Composite Composes objects into tree structures to represent part-whole hierarchies.
[Coming Soon] Proxy Provides a surrogate or placeholder for another object to control access to it.
[Coming Soon] Flyweight Uses sharing to support large numbers of fine-grained objects efficiently.
[Coming Soon] Facade Provides a unified interface to a set of interfaces in a subsystem.
[Coming Soon] Bridge Decouples an abstraction from its implementation so that the two can vary independently.
[Coming Soon] Decorator Adds additional responsibilities to an object dynamically.
Behavioral Patterns [Coming Soon] Observer Defines a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
[Coming Soon] Strategy Defines a family of algorithms, encapsulates each one, and makes them interchangeable.
[Coming Soon] Command Encapsulates a request as an object, thereby allowing for parameterization of clients with queues, requests, and operations.
[Coming Soon] Chain of Responsibility Passes a request along a chain of handlers, where each handler decides either to process the request or to pass it to the next handler in the chain.
[Coming Soon] Mediator Defines an object that encapsulates how a set of objects interact.
[Coming Soon] Memento Without violating encapsulation, captures and externalizes an object's internal state so that the object can be restored to this state later.
[Coming Soon] State Allows an object to alter its behavior when its internal state changes.
[Coming Soon] Visitor Represents an operation to be performed on the elements of an object structure.
[Coming Soon] Template Method Defines the skeleton of an algorithm in the superclass but lets subclasses override specific steps of the algorithm without changing its structure.
[Coming Soon] Interpreter Given a language, defines a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language.