Software Design Patterns

Design pattern is a general reusable solution to a commonly occurring problem in software design.

Design patterns were originally grouped into the categories: creational patterns, structural patterns, and behavioral patterns.

Creational Pattern

It deals with mechanism how the objects should be created in a specific situation.

Popular creational patterns are

  • Abstract factory pattern, which provides an interface for creating related or dependent objects without specifying the objects’ concrete classes.
  • Builder pattern, which separates the construction of a complex object from its representation so that the same construction process can create different representations.
  • Factory method pattern, which allows a class to defer instantiation to subclasses.
  • Prototype pattern, which specifies the kind of object to create using a prototypical instance, and creates new objects by cloning this prototype.
  • Singleton pattern, which ensures that a class only has one instance, and provides a global point of access to it.

Structural Pattern

Structural patterns makes the design easy by identifying a simple way to realize relations among entities/classes.

Popular structural patterns are

  • Adapter pattern: ‘adapts’ one interface for a class into one that a client expects.
  • Bridge pattern: decouple an abstraction from its implementation so that the two can vary independently .
  • Composite pattern: a tree structure of objects where every object has the same interface.
  • Decorator pattern: add additional functionality to a class at runtime where subclassing would result in an exponential rise of new classes.
  • Facade pattern: create a simplified interface of an existing interface to ease usage for common tasks.
  • Flyweight pattern: a large quantity of objects share a common properties object to save space.
  • Marker pattern: an empty interface to associate metadata with a class.
  • Pipes and filters: a chain of processes where the output of each process is the input of the next.
  • Proxy pattern: a class functioning as an interface to another thing.

Behavioral Pattern

Behavioral design patterns deal with how objects will be carrying out communication with each other.

Popular behavioral patters are

Create a website or blog at

Up ↑

Create your website with
Get started