Software design pattern
Reusable solution to a commonly occurring problem within a given context in software design.
- Creational design patterns
- Builder Pattern
- Prototype Pattern
- Singleton Pattern
- Abstract Factory Patterns
- Structural Patterns
- Adapter Pattern
- Bridge Pattern
- Composite Pattern
- Decorator Pattern
- Facade Pattern
- Flyweight Pattern
- Proxy Pattern
- Behavioral Patterns
- Interpreter Pattern
- Template Pattern
- Chain of Responsibility Pattern
- Command Pattern
- Iterator Pattern
- Mediator Pattern
- Memento Pattern
- Observer Pattern
- State Pattern
- Strategy Pattern
- Visitor Pattern
- Snippet from Wikipedia: Software design pattern
In software engineering, a design pattern describes a relatively small, well-defined aspect (i.e. functionality) of a computer program in terms of how to write the code.
Using a pattern is intended to leverage an existing concept rather than re-inventing it. This can decrease the time to develop software and increase the quality of the resulting program.
Notably, a pattern does not consist of a software artifact. Most development resources that a programmer uses involve configuring the codebase to use an artifact; for example a library. In contrast, to use a pattern, a programmer writes code as described by the pattern. The result is unique every time even though the result may be recognizable as based on the pattern.
Some consider using patterns to be best practice for software design. Some consider using design patterns as a structured approach to computer programming.
Conceptually, design pattern may be described as more specific than programming paradigm and less specific than algorithm.
Related:
External links:
- 10 Common Software Architectural Patterns in a nutshell — towardsdatascience.com
- Layered pattern
- Client-server pattern
- Master-slave pattern
- Pipe-filter pattern
- Broker pattern
- Peer-to-peer pattern
- Event-bus pattern
- Model-view-controller pattern
- Blackboard pattern
- Interpreter pattern