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

https://github.com/omar-ahmed314/design-patterns

GOF Design Patterns
https://github.com/omar-ahmed314/design-patterns

clean-code design-patterns java solid-principles

Last synced: 7 months ago
JSON representation

GOF Design Patterns

Awesome Lists containing this project

README

          

# Design Patterns
This repo contains the GOF popular design patterns combined with a simple description, a class
diagram, and a code example demonstrates the idea.

Design patterns classified into three categories:
- Creational Patterns
- Structural Patterns
- Behavioral Patterns

## Creational Patterns
Those patterns try to solve the common problems related to how the objects
can be created.

common patterns:
- [Factory](src/com/designPatterns/CreationalPatterns/FactoryPattern)
- [Abstract Factory](src/com/designPatterns/CreationalPatterns/AbstractFactoryMethod)
- [Builder](src/com/designPatterns/CreationalPatterns/BuilderPattern)
- [Prototype](src/com/designPatterns/CreationalPatterns/PrototypePattern)
- [Singleton](src/com/designPatterns/CreationalPatterns/SingletonPattern)

## Structural Patterns
Patterns concern with how the objects composite with each other or how objects
constructed to form another one.

common patterns:
- [Adapter](src/com/designPatterns/StructuralPatterns/AdapterPattern)
- [Bridge](src/com/designPatterns/StructuralPatterns/BridgePattern)
- [Composite](src/com/designPatterns/StructuralPatterns/CompositePattern)
- [Decorator](src/com/designPatterns/StructuralPatterns/Decorator)
- [Facade](src/com/designPatterns/StructuralPatterns/Facade)
- [Fly weight](src/com/designPatterns/StructuralPatterns/FlyWeight)

## Behavioral Patterns
Patterns which care how objects talk with each other, or how they communicate
well the way that makes them easy to extend, manipulate and reuse.
Also, they matter with encapsulation, whether encapsulating the communication
between the objects, the behavior from the class and etc

common patterns:
- [Chain of responsibilities](src/com/designPatterns/BehavioralPatterns/ChainOfResponsibilities)
- [Command](src/com/designPatterns/BehavioralPatterns/Command)
- [Iterator](src/com/designPatterns/BehavioralPatterns/Iterator)
- [Mediator](src/com/designPatterns/BehavioralPatterns/Mediator)
- [Memento](src/com/designPatterns/BehavioralPatterns/Memento)
- [Observer](src/com/designPatterns/BehavioralPatterns/Observer)
- [State](src/com/designPatterns/BehavioralPatterns/State)
- [Strategy](src/com/designPatterns/BehavioralPatterns/Strategy)
- [Template](src/com/designPatterns/BehavioralPatterns/Template)
- [Visitor](src/com/designPatterns/BehavioralPatterns/Visitor)

## References
- [Design Patterns in object oriented programming](https://youtube.com/playlist?list=PLrhzvIcii6GNjpARdnO4ueTUAVR9eMBpc)
- [Creational Design Patterns](https://youtube.com/playlist?list=PLnqAlQ9hFYdewk9UKGBcHLulZNUBpNSKJ)
- [Derek Banas](https://youtube.com/playlist?list=PLF206E906175C7E07)
- [Geekific](https://youtube.com/playlist?list=PLlsmxlJgn1HJpa28yHzkBmUY-Ty71ZUGc)
- [Head first design patterns book](https://www.oreilly.com/library/view/head-first-design/9781492077992/)