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

https://github.com/hoangtien2k3/design-pattern

◉ Design Patterns includes 3 main groups: 1. Creational pattern, 2. Behavioral pattern, 3. Structural pattern.
https://github.com/hoangtien2k3/design-pattern

java java-design-patterns kotlin kotlin-design-patterns patterns-java

Last synced: 8 months ago
JSON representation

◉ Design Patterns includes 3 main groups: 1. Creational pattern, 2. Behavioral pattern, 3. Structural pattern.

Awesome Lists containing this project

README

          

# Design Pattern:
- Link1: [https://sourcemaking.com/design_patterns](https://sourcemaking.com/design_patterns)
- Link2: [https://tvd12.com/posts/object-pool-design-pattern](https://tvd12.com/posts/object-pool-design-pattern)
- Design pattern [DIRECTORY](DIRECTORY.md)

## Use Design Pattern because?
- ✅ Reusable code and easy to expand
- ✅ `Design pattern` helps increase code reuse, reduce complexity, and increase flexibility in software development.
- ✅ These are optimized solutions that we can use depending on the situation without thinking.
- ✅ At the same time increases the speed of development and testing for developers
- ✅ Of course the code will become easier to read and understand, along with being easier to maintain and upgrade in the future.
- ✅ Save time working with other developers' code.

## Classification of Design Patterns:
Design Patterns has 23 patterns defined inside and divided into 3 groups.
- `Creational Pattern`
- `Structural Pattern`
- `Behavioral Pattern`

[//]: # (![Design-Pattern-gom-nhung-loai-nao](https://github.com/hoangtien2k3qx1/design-pattern/assets/122768076/287bc9f0-33cd-4fea-b45e-cef29a2f9868))

| Creational Patterns | Structural Patterns | Behavioral Patterns |
|-----------------------------------------------------------------------------------------------------------------------|---------------------|-----------------------------|
| ✔️ [Factory Method](https://github.com/doctor-blue/design-patterns/tree/master/Creational/Factory-method) | ✔️ [Adapter]() | [Interpreter]() |
| ✔️ [Abstract Factory](https://github.com/doctor-blue/design-patterns/tree/master/Creational/Abstract-factory-method) | [Bridge]() | [Template Method]() |
| ✔️ [Builder](https://github.com/doctor-blue/design-patterns/tree/master/Creational/Builder) | [Composite]() | [Chain of Responsibility]() |
| ✔️ [Prototype](https://github.com/doctor-blue/design-patterns/tree/master/Creational/Prototype) | [Decorator]() | [Command]() |
| ✔️ [Singleton](https://github.com/doctor-blue/design-patterns/tree/master/Creational/Singleton) | [Facade]() | [Iterator]() |
| | [Flyweight]() | [Mediator]() |
| | [Proxy]() | [Memento]() |
| | | ✔️ [Observer]() |
| | | [State]() |
| | | [Strategy]() |
| | | [Visitor]() |

### 1. Creational Patterns (Creational Group)
`Includes 5 models`: Provides a solution to create an object and hide the logic that creates it instead of creating it directly, giving the program more flexibility in which object it wants to create and in which situation.

### 2. Structural Patterns (Structural Group)
`Includes 7 models`: Helps us establish relationships between objects.

### 3. Behavioral Patterns (Group Interaction)
`Includes 11 models`: Provides solutions to perform the behavior of objects as well as between objects.

## Microservices Design Patterns:
- [Aggregator]()
- [API Gateway]()
- [Chained or Chain of Responsibility]()
- [Asynchronous Messaging]()
- [Database or Shared Data]()
- [Event Sourcing]()
- [Branch]()
- [Command Query Responsibility Segregator]()
- [Circuit Breaker]()
- [Decomposition]()