Design patterns are a common way to solves specific scenarios in code development. Design pattern are a solution based on context and problem apply, can be used in different languages or paradigms. Your use are recommended to increase readability, maintainability, and reusability of the code. It extremely widespread knowledge turn design patterns popular, merchant marketplace well desired and academic literature comprehensive. To understand design patterns, it is necessary to know the context and problem that the pattern solves, and the pattern structure and implementation. This repository contains the most common design patterns, and the implementation is in Java.
- Singleton
- Factory Method
- Abstract Factory[In Development]
- Builder[In Development]
- Prototype[In Development]
- Object Pool[In Development]
- Lazy Initialization[In Development]
- Multiton[In Development]
- Factory Kit[In Development]
- Dependency Injection[In Development]
- Service Locator[In Development]
- Data Access Object[In Development]
- Repository[In Development]
- Object Mother[In Development]
- Specification[In Development]
- Partial Initialization[In Development]
- Property[In Development]
- Index[In Development]
- Double Checked Locking[In Development]
- Multiton[In Development]
- Object Pool[In Development]
- Prototype[In Development]
- Adapter[In Development]
- Bridge[In Development]
- Composite[In Development]
- Decorator[In Development]
- Facade[In Development]
- Flyweight[In Development]
- Proxy[In Development]
- Module[In Development]
- Private Class Data[In Development]
- Service Layer[In Development]
- Event Aggregator[In Development]
- Entity Component System[In Development]
- Service Layer[In Development]
- Chain of Responsibility[In Development]
- Command[In Development]
- Interpreter[In Development]
- Iterator[In Development]
- Null Object[In Development]
- Observer[In Development]
- State[In Development]
- Strategy[In Development]
- Template Method[In Development]
- Visitor[In Development]
- Memento[In Development]
- Mediator[In Development]