Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/syaw0/design-patterns

most useful design patterns in most use language 💫️ 🏵️
https://github.com/syaw0/design-patterns

design-pattern design-patterns oop pattern patterns

Last synced: 21 days ago
JSON representation

most useful design patterns in most use language 💫️ 🏵️

Awesome Lists containing this project

README

        

![designPattern](https://user-images.githubusercontent.com/78824988/209479936-89539017-cdb3-4b31-82ea-39b25dfd1ef3.png)
**A unique repo for top level Software engineer**

# Intent

In software development, a
design pattern is a general
reusable solution that has
been proven to be effective in
solving a common problem or
addressing a recurring design
challenge. A design pattern
describes the problem, its
solution, and its associated
trade-offs.

Design patterns are useful in
software development because
they provide a common language
and framework for developers
to communicate and share
ideas. They allow developers
to build on the experience and
knowledge of other developers
who have faced similar design
challenges, and to avoid making
common mistakes. By following
design patterns, developers can
write code that is more reliable,
maintainable, and scalable.

Using design patterns can
also help improve the quality
and efficiency of software
development by reducing the
time and cost required for
designing and developing new
systems. Design patterns can
also improve code clarity and
readability, making it easier for
other developers to understand
and maintain the code.
Overall, design patterns are
an important tool for software
developers in designing and
building software systems that
are robust, maintainable, and
scalable.

# Category

**Patterns commonly split to three section...**

1. [**Creational Pattern**](#1-creational-pattern)
2. [**Structural Pattern**](#2-structural-pattern)
3. [**Behavioral Pattern**](#3-behavioral-pattern)

lets learn about them !

## 1. Creational Pattern
**Creational patterns focus on separating the system of creating objects from the main logical system, in this case the construction and matters related to the creation of new objects become very flexible. These patterns provide different mechanisms for creating objects and allow Reuse the existing code.**


- [**Factory Method**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Creational_Patterns/Factory_Method)
- [**Abstract Factory**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Creational_Patterns/Abstract_Factory)
- [**Builder**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Creational_Patterns/Builder)
- [**Prototype**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Creational_Patterns/Prototype)
- [**Singleton**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Creational_Patterns/Singleton)


## 2. Structural Pattern

**Structure design patterns explain how different objects and classes can be assembled with each other and larger structure and at the same time keep the structure flexible and efficient.**


- [**Adapter**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Structural_Patterns/Adapter)
- [**Bridge**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Structural_Patterns/Bridge)
- [**Composite(Object Tree)**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Structural_Patterns/Composite)
- [**Decorator**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Structural_Patterns/Decorator)

- [**Flyweight(Cache)**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Structural_Patterns/Flyweight)
- [**Facade**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Structural_Patterns/Facade)
- [**Proxy**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Structural_Patterns/Proxy)


## 3. Behavioral Pattern

**Behavior patterns simply is to create and control the connection between objects and also how we interact with this objects.**

- [**Chain Of Responsibility**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Behavioral_Patterns/Chain_Of_Responsibility)
- [**Command(Action,Transaction)**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Behavioral_Patterns/Command)
- [**Iterator**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Behavioral_Patterns/Iterator)
- [**Mediator(Intermediary,Controller)**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Behavioral_Patterns/Mediator)
- [**Memento(Snapshot)**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Behavioral_Patterns/Memento)
- [**Observer(Listener,Event-subscriber)**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Behavioral_Patterns/Observer)
- [**State**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Behavioral_Patterns/State)
- [**Strategy**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Behavioral_Patterns/Strategy)
- [**Template**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Behavioral_Patterns/Template)
- [**Visitor**](https://github.com/Syaw0/Design-Patterns/tree/master/src/Behavioral_Patterns/Visitor)