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
- Host: GitHub
- URL: https://github.com/omar-ahmed314/design-patterns
- Owner: Omar-ahmed314
- Created: 2023-02-04T19:13:53.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-03-04T19:59:42.000Z (almost 3 years ago)
- Last Synced: 2025-04-13T01:32:34.259Z (9 months ago)
- Topics: clean-code, design-patterns, java, solid-principles
- Language: Java
- Homepage:
- Size: 354 KB
- Stars: 10
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
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/)