Skip to content

sfktrkl/DesignPatterns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Design Patterns

A design pattern is a general repeatable solution to a commonly occurring problem in software design.

Benefits of Design Patterns

Design Patterns,

  • Can speed up the development process by providing tested, proven development paradigms.
  • Improve code readability for coders and architects familiar with the patterns.
  • Provide general solutions, documented in a format that doesn't require specifics tied to a particular problem.
  • Allow developers to communicate using well-known, well understood names for software interactions.
  • Reusing design patterns helps to prevent subtle issues that can cause major problems.

Types of Design Patterns

Creational Design Patterns

These design patterns are all about class instantiation.

  • Abstract Factory

    Creates an instance of several families of classes

  • Builder

    Separates object construction from its representation

  • Factory Method

    Creates an instance of several derived classes

  • Object Pool

    Avoid expensive acquisition and release of resources by recycling objects that are no longer in use

  • Prototype

    A fully initialized instance to be copied or cloned

  • Singleton

    A class of which only a single instance can exist

Structural design patterns

These design patterns are all about Class and Object composition.

  • Adapter

    Match interfaces of different classes

  • Bridge

    Separates an object’s interface from its implementation

  • Composite

    A tree structure of simple and composite objects

  • Decorator

    Add responsibilities to objects dynamically

  • Facade

    A single class that represents an entire subsystem

  • Flyweight

    A fine-grained instance used for efficient sharing

  • Private Class Data

    Restricts accessor/mutator access

  • Proxy

    An object representing another object

Behavioral design patterns

These design patterns are all about Class's objects communication.

  • Chain of responsibility

    A way of passing a request between a chain of objects

  • Command

    Encapsulate a command request as an object

  • Interpreter

    A way to include language elements in a program

  • Iterator

    Sequentially access the elements of a collection

  • Mediator

    Defines simplified communication between classes

  • Memento

    Capture and restore an object's internal state

  • Null Object

    Designed to act as a default value of an object

  • Observer

    A way of notifying change to a number of classes

  • State

    Alter an object's behavior when its state changes

  • Strategy

    Encapsulates an algorithm inside a class

  • Template method

    Defer the exact steps of an algorithm to a subclass

  • Visitor

    Defines a new operation to a class without change

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages