https://github.com/ozgen/java-design-patterns
all design patterns examples in a single class.
https://github.com/ozgen/java-design-patterns
design-patterns java java-design-patterns java11 solid-principles
Last synced: 4 months ago
JSON representation
all design patterns examples in a single class.
- Host: GitHub
- URL: https://github.com/ozgen/java-design-patterns
- Owner: ozgen
- Created: 2021-06-12T13:13:30.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-01-27T19:44:02.000Z (over 1 year ago)
- Last Synced: 2025-01-04T16:19:33.646Z (6 months ago)
- Topics: design-patterns, java, java-design-patterns, java11, solid-principles
- Language: Java
- Homepage:
- Size: 7.69 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Java-Design-Patterns
This project includes SOLID principles
and all design patterns examples in Java-17## Wiki
For detailed explanations of design patterns and SOLID principles, visit our [Wiki Page](https://github.com/ozgen/java-design-patterns/wiki/Java-Design-Patterns-Wiki).
## Design patterns :
* solid principles:
* [srp](https://github.com/ozgen/java-design-patterns/blob/main/src/main/java/solid/srp/SRP.java)
* [ocp](https://github.com/ozgen/java-design-patterns/blob/main/src/main/java/solid/ocp/OCP.java)
* [lsp](https://github.com/ozgen/java-design-patterns/blob/main/src/main/java/solid/lsp/LSP.java)
* [isp](https://github.com/ozgen/java-design-patterns/blob/main/src/main/java/solid/isp/ISP.java)
* [dip](https://github.com/ozgen/java-design-patterns/blob/main/src/main/java/solid/dip/DIP.java)
* builder design pattern:
* [facet builder](/src/main/java/builder/DemoFacetBuilder.java)
* [fluent builder](/src/main/java/builder/DemoFluentBuider.java)
* factories design pattern:
* [abstract factories](src/main/java/factories/AbstractFactoryDemo.java)
* [basic factories](src/main/java/factories/DemoFactory.java)
* [method factories](src/main/java/factories/DemoFactoryMethod.java)
* prototype design Pattern:
* [basic prototype](src/main/java/prototype/PrototypeDemo.java)
* [serialize prototype](src/main/java/prototype/SerializeDemo.java)
* [copy-constructor prototype](src/main/java/prototype/CopyContructorDemo.java)
* singleton design pattern:
* [basic singleton](src/main/java/singleton/BasicSingleton.java)
* [enum-based singleton](src/main/java/singleton/EnumBasedSingletonDemo.java)
* [inner-static singleton](src/main/java/singleton/InnerStaticSingletonDemo.java)
* [lazy singleton](src/main/java/singleton/LazySingletonDemo.java)
* [mutation singleton](src/main/java/singleton/Multiton.java)
* [testability singleton](src/main/java/singleton/SingletonTestabilityDemo.java)
* adapter design pattern:
* [adapter](src/main/java/adapter/AdapterDemo.java)
* bridge design pattern:
* [bridge](src/main/java/bridge/BridgeDemo.java)
* composite design pattern:
* [composite](src/main/java/composite/CompositeDemo.java)
* [neural-network](src/main/java/composite/neuralnetworks/NeuralNetwork.java)
* decorator design pattern:
* [adapter decorator](src/main/java/decorator/adapter/AdapterDecorator.java)
* [dynamic decorator](src/main/java/decorator/DynamicDecoratorComposition.java)
* [string decorator](src/main/java/decorator/StringDecorator.java)
* facade design pattern:
* [facade](src/main/java/facade/FacadeDemo.java)
* flyweight design pattern:
* [flyweight -1](src/main/java/flyweight/Demo.java)
* [flyweight -2](src/main/java/flyweight/FlyWeightDemo.java)
* [flyweight -3 (formatted text)](src/main/java/flyweight/FlyWeightDemoForFormattedText.java)
* proxy design pattern:
* [dynamic proxy](src/main/java/proxy/DynamicProxyDemo.java)
* [property proxy](src/main/java/proxy/PropertyProxyDemo.java)
* [protection proxy](src/main/java/proxy/ProtectionProxyDemo.java)
* chain of responsibility design pattern:
* [command-query cor](src/main/java/chainofresponsibility/CommandQuerySeparationDemo.java)
* [method cor](src/main/java/chainofresponsibility/MethodChainDemo.java)
* command design pattern:
* [command](src/main/java/command/CommandDemo.java)
* interpreter design pattern:
* [interpreter - 1](src/main/java/interpreter/InterpeterDemo.java)
* [interpreter - 2](src/main/java/interpreter/InterpreterExample.java)
* iterator design pattern:
* [iterator](src/main/java/iterator/IteratorDemo.java)
* [array-backed-drop](src/main/java/iterator/ArrayBackedPropDemo.java)
* mediator design pattern:
* [mediator](src/main/java/mediator/MediatorDemo.java)
* [event-broker](src/main/java/mediator/EventBrokerDemo.java)
* memento design pattern:
* [memento](src/main/java/memento/MementoDemo.java)
* null object design pattern:
* [null-object](src/main/java/nullobject/NullObjectDemo.java)
* observer design pattern:
* [observer](src/main/java/observer/ObserverDemo.java)
* [observer-event](src/main/java/observer/ObserverEventDemo.java)
* state design pattern:
* [state](src/main/java/state/StateDemo.java)
* [state-handmade](src/main/java/state/HandmadeStateDemo.java)
* [state-spring](src/main/java/state/SpringStateMachineDemo.java)
* strategy design pattern:
* [dynamic strategy](src/main/java/strategy/DynamicStrategyDemo.java)
* [static strategy](src/main/java/strategy/StaticStrategyDemo.java)
* template method design pattern:
* [template method](src/main/java/templatemethod/TemplateMethodDemo.java)
* visitor design pattern:
* [intrusive visitor](src/main/java/visitor/VisitorDemo.java)
* [reflective visitor](src/main/java/visitor/ReflectiveVisitorDemo.java)
* [classic visitor](src/main/java/visitor/ClassicVisitorDemo.java)
* [acyclic visitor](src/main/java/visitor/AcyclicVisitorDemo.java)