{"id":19208719,"url":"https://github.com/ozgen/java-design-patterns","last_synced_at":"2025-11-13T19:02:23.239Z","repository":{"id":37262761,"uuid":"376293574","full_name":"ozgen/java-design-patterns","owner":"ozgen","description":"all design patterns examples in a single class.","archived":false,"fork":false,"pushed_at":"2024-01-27T19:44:02.000Z","size":8062,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-04T16:19:33.646Z","etag":null,"topics":["design-patterns","java","java-design-patterns","java11","solid-principles"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ozgen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-12T13:13:30.000Z","updated_at":"2022-08-02T11:45:42.000Z","dependencies_parsed_at":"2024-11-09T13:30:00.114Z","dependency_job_id":"37d247e3-068a-4503-9bf9-11138cb1f920","html_url":"https://github.com/ozgen/java-design-patterns","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozgen%2Fjava-design-patterns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozgen%2Fjava-design-patterns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozgen%2Fjava-design-patterns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozgen%2Fjava-design-patterns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ozgen","download_url":"https://codeload.github.com/ozgen/java-design-patterns/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240280984,"owners_count":19776418,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["design-patterns","java","java-design-patterns","java11","solid-principles"],"created_at":"2024-11-09T13:27:33.759Z","updated_at":"2025-11-13T19:02:23.166Z","avatar_url":"https://github.com/ozgen.png","language":"Java","readme":"# Java-Design-Patterns\n\nThis project includes SOLID principles\nand all design patterns examples in Java-17\n\n## Wiki\n\nFor detailed explanations of design patterns and SOLID principles, visit our [Wiki Page](https://github.com/ozgen/java-design-patterns/wiki/Java-Design-Patterns-Wiki).\n\n\n## Design patterns :\n\n* solid principles:\n    * [srp](https://github.com/ozgen/java-design-patterns/blob/main/src/main/java/solid/srp/SRP.java)\n    * [ocp](https://github.com/ozgen/java-design-patterns/blob/main/src/main/java/solid/ocp/OCP.java)\n    * [lsp](https://github.com/ozgen/java-design-patterns/blob/main/src/main/java/solid/lsp/LSP.java)\n    * [isp](https://github.com/ozgen/java-design-patterns/blob/main/src/main/java/solid/isp/ISP.java)\n    * [dip](https://github.com/ozgen/java-design-patterns/blob/main/src/main/java/solid/dip/DIP.java)\n* builder design pattern:\n    * [facet builder](/src/main/java/builder/DemoFacetBuilder.java)\n    * [fluent builder](/src/main/java/builder/DemoFluentBuider.java)\n* factories design pattern:\n    * [abstract factories](src/main/java/factories/AbstractFactoryDemo.java)\n    * [basic factories](src/main/java/factories/DemoFactory.java)\n    * [method factories](src/main/java/factories/DemoFactoryMethod.java)\n* prototype design Pattern:\n    * [basic prototype](src/main/java/prototype/PrototypeDemo.java)\n    * [serialize prototype](src/main/java/prototype/SerializeDemo.java)\n    * [copy-constructor prototype](src/main/java/prototype/CopyContructorDemo.java)\n* singleton design pattern:\n    * [basic singleton](src/main/java/singleton/BasicSingleton.java)\n    * [enum-based singleton](src/main/java/singleton/EnumBasedSingletonDemo.java)\n    * [inner-static singleton](src/main/java/singleton/InnerStaticSingletonDemo.java)\n    * [lazy singleton](src/main/java/singleton/LazySingletonDemo.java)\n    * [mutation singleton](src/main/java/singleton/Multiton.java)\n    * [testability singleton](src/main/java/singleton/SingletonTestabilityDemo.java)\n* adapter design pattern:\n    * [adapter](src/main/java/adapter/AdapterDemo.java)\n* bridge design pattern:\n    * [bridge](src/main/java/bridge/BridgeDemo.java)\n* composite design pattern:\n    * [composite](src/main/java/composite/CompositeDemo.java)\n    * [neural-network](src/main/java/composite/neuralnetworks/NeuralNetwork.java)\n* decorator design pattern:\n    * [adapter decorator](src/main/java/decorator/adapter/AdapterDecorator.java)\n    * [dynamic decorator](src/main/java/decorator/DynamicDecoratorComposition.java)\n    * [string decorator](src/main/java/decorator/StringDecorator.java)\n* facade design pattern:\n    * [facade](src/main/java/facade/FacadeDemo.java)\n* flyweight design pattern:\n    * [flyweight -1](src/main/java/flyweight/Demo.java)\n    * [flyweight -2](src/main/java/flyweight/FlyWeightDemo.java)\n    * [flyweight -3 (formatted text)](src/main/java/flyweight/FlyWeightDemoForFormattedText.java)\n* proxy design pattern:\n    * [dynamic proxy](src/main/java/proxy/DynamicProxyDemo.java)\n    * [property proxy](src/main/java/proxy/PropertyProxyDemo.java)\n    * [protection proxy](src/main/java/proxy/ProtectionProxyDemo.java)\n* chain of responsibility design pattern:\n    * [command-query cor](src/main/java/chainofresponsibility/CommandQuerySeparationDemo.java)\n    * [method cor](src/main/java/chainofresponsibility/MethodChainDemo.java)\n* command design pattern:\n    * [command](src/main/java/command/CommandDemo.java)\n* interpreter design pattern:\n    * [interpreter - 1](src/main/java/interpreter/InterpeterDemo.java)\n    * [interpreter - 2](src/main/java/interpreter/InterpreterExample.java)\n* iterator design pattern:\n    * [iterator](src/main/java/iterator/IteratorDemo.java)\n    * [array-backed-drop](src/main/java/iterator/ArrayBackedPropDemo.java)\n* mediator design pattern:\n    * [mediator](src/main/java/mediator/MediatorDemo.java)\n    * [event-broker](src/main/java/mediator/EventBrokerDemo.java)\n* memento design pattern:\n    * [memento](src/main/java/memento/MementoDemo.java)\n* null object design pattern:\n    * [null-object](src/main/java/nullobject/NullObjectDemo.java)\n* observer design pattern:\n    * [observer](src/main/java/observer/ObserverDemo.java)\n    * [observer-event](src/main/java/observer/ObserverEventDemo.java)\n* state design pattern:\n    * [state](src/main/java/state/StateDemo.java)\n    * [state-handmade](src/main/java/state/HandmadeStateDemo.java)\n    * [state-spring](src/main/java/state/SpringStateMachineDemo.java)\n* strategy design pattern:\n    * [dynamic strategy](src/main/java/strategy/DynamicStrategyDemo.java)\n    * [static strategy](src/main/java/strategy/StaticStrategyDemo.java)\n* template method design pattern:\n    * [template method](src/main/java/templatemethod/TemplateMethodDemo.java)\n* visitor design pattern:\n    * [intrusive visitor](src/main/java/visitor/VisitorDemo.java)\n    * [reflective visitor](src/main/java/visitor/ReflectiveVisitorDemo.java)\n    * [classic visitor](src/main/java/visitor/ClassicVisitorDemo.java)\n    * [acyclic visitor](src/main/java/visitor/AcyclicVisitorDemo.java)\n\n \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fozgen%2Fjava-design-patterns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fozgen%2Fjava-design-patterns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fozgen%2Fjava-design-patterns/lists"}