This repository contains implementation of Software Design Patterns in different languages that supports Object-Orientation.
The supported implementation include:
- C++
- C#
- Java
- Dart
- Swift
- Python
This repository introduce software design patterns from an abstract level which summarize the intentionality, applicability, and suitability of the pattern as well as its implementation details in the listed set of programming languages.
Content Structure:
├───Behavioral
│ ├───Blackboard
│ ├───ChainOfResponsibility
│ ├───Command
│ ├───Interpreter
│ ├───Iterator
│ ├───Mediator
│ ├───Memento
│ ├───NullObject
│ ├───Observer
│ ├───Servant
│ ├───Specification
│ ├───State
│ ├───Strategy
│ ├───TemplateMethod
│ └───Visitor
├───Creational
│ ├───AbstractFactory
│ ├───Builder
│ ├───DependencyInjection
│ ├───FactoryMethod
│ ├───LazyInitalization
│ ├───Multiton
│ ├───ObjectPool
│ ├───Prototype
│ ├───RAII
│ └───Singleton
├───Functional
│ ├───Closure
│ ├───Currying
│ ├───FreeMonad
│ ├───FunctionComposition
│ ├───Functor
│ ├───Generator
│ ├───HOF
│ ├───Monad
│ └───Monoid
└───Structural
├───Adapter
├───Bridge
├───Composite
├───Decorator
├───Delegation
├───Facade
├───Flyweight
├───FrontController
├───MarkerInterface
├───Module
├───Proxy
└───Twin
- Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1994). Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley. pp. 243ff. ISBN 0-201-63361-2.
- Wikipedia contributors. (2021, June 13). Software design pattern. In Wikipedia, The Free Encyclopedia. Retrieved 11:29, August 16, 2021, from https://en.wikipedia.org/w/index.php?title=Software_design_pattern&oldid=1028423053