Project bases on java implementation of design patterns: https://github.com/iluwatar/java-design-patterns
- Add dependency injectable logger for logging handling possibility
Planned design patterns
| Design Pattern | Implementation | Description | Comments |
|---|---|---|---|
| abstract-document | ✔️ | ❌ | |
| abstract-factory | ✔️ | ✔️ | |
| active-object | ✔️ | ❌ | |
| acyclic-visitor | ✔️ | ❌ | |
| adapter | ✔️ | ✔️ | |
| aggregator-microservices | ❌ | ❌ | |
| ambassador | ❌ | ❌ | #todo refactorization |
| api-gateway | ❌ | ❌ | Http protocol necessary |
| arrange-act-assert | ✔️ | ❌ | |
| async-method-invocation | ❌ | ❌ | |
| balking | ❌ | ❌ | |
| bridge | ✔️ | ❌ | |
| builder | ✔️ | ❌ | |
| business-delegate | ❌ | ❌ | |
| bytecode | ❌ | ❌ | |
| caching | ❌ | ❌ | |
| callback | ❌ | ❌ | |
| chain-of-responsibility | ✔️ | ❌ | |
| circuit-breaker | ❌ | ❌ | |
| client-session | ❌ | ❌ | |
| collecting-parameter | ❌ | ❌ | |
| collection-pipeline | ❌ | ❌ | |
| combinator | ❌ | ❌ | |
| command | ✔️ | ❌ | |
| commander | ❌ | ❌ | |
| component | ❌ | ❌ | |
| composite | ✔️ | ❌ | |
| composite-entity | ❌ | ❌ | |
| composite-view | ❌ | ❌ | |
| context-object | ❌ | ❌ | |
| converter | ❌ | ❌ | |
| cqrs | ❌ | ❌ | |
| currying | ❌ | ❌ | |
| dao | ❌ | ❌ | |
| data-bus | ❌ | ❌ | |
| data-locality | ❌ | ❌ | |
| data-mapper | ❌ | ❌ | |
| data-transfer-object | ❌ | ❌ | |
| decorator | ✔️ | ❌ | |
| delegation | ❌ | ❌ | |
| dependency-injection | ❌ | ❌ | |
| dirty-flag | ❌ | ❌ | |
| domain-model | ❌ | ❌ | |
| double-buffer | ❌ | ❌ | |
| double-checked-locking | ❌ | ❌ | |
| double-dispatch | ❌ | ❌ | |
| embedded-value | ❌ | ❌ | |
| event-aggregator | ❌ | ❌ | |
| event-asynchronous | ❌ | ❌ | |
| event-driven-architecture | ❌ | ❌ | |
| event-queue | ❌ | ❌ | |
| event-sourcing | ❌ | ❌ | |
| execute-around | ❌ | ❌ | |
| extension-objects | ❌ | ❌ | |
| facade | ❌ | ❌ | |
| factory | ❌ | ❌ | |
| factory-kit | ❌ | ❌ | |
| factory-method | ✔️ | ❌ | |
| fanout-fanin | ❌ | ❌ | |
| feature-toggle | ❌ | ❌ | |
| filterer | ❌ | ❌ | |
| fluentinterface | ❌ | ❌ | |
| flux | ❌ | ❌ | |
| flyweight | ✔️ | ❌ | |
| front-controller | ❌ | ❌ | |
| game-loop | ❌ | ❌ | |
| guarded-suspension | ❌ | ❌ | |
| half-sync-half-async | ❌ | ❌ | |
| hexagonal | ❌ | ❌ | |
| identity-map | ❌ | ❌ | |
| intercepting-filter | ❌ | ❌ | |
| interpreter | ✔️ | ❌ | |
| iterator | ✔️ | ❌ | |
| layers | ❌ | ❌ | |
| lazy-loading | ❌ | ❌ | |
| leader-election | ❌ | ❌ | |
| leader-followers | ❌ | ❌ | |
| localization | ❌ | ❌ | |
| lockable-object | ❌ | ❌ | |
| marker | ❌ | ❌ | |
| master-worker-pattern | ❌ | ❌ | |
| mediator | ❌ | ❌ | |
| memento | ✔️ | ❌ | |
| metadata-mapping | ❌ | ❌ | |
| model-view-controller | ❌ | ❌ | |
| model-view-intent | ❌ | ❌ | |
| model-view-presenter | ❌ | ❌ | |
| model-view-viewmodel | ❌ | ❌ | |
| module | ❌ | ❌ | |
| monad | ❌ | ❌ | |
| monitor | ❌ | ❌ | |
| monostate | ✔️ | ❌ | |
| multiton | ✔️ | ❌ | |
| mute-idiom | ❌ | ❌ | |
| naked-objects | ❌ | ❌ | |
| null-object | ❌ | ❌ | |
| object-mother | ❌ | ❌ | |
| object-pool | ❌ | ❌ | |
| observer | ❌ | ❌ | |
| page-controller | ❌ | ❌ | |
| page-object | ❌ | ❌ | |
| parameter-object | ❌ | ❌ | |
| partial-response | ❌ | ❌ | |
| pipeline | ❌ | ❌ | |
| poison-pill | ❌ | ❌ | |
| presentation-model | ❌ | ❌ | |
| priority-queue | ❌ | ❌ | |
| private-class-data | ❌ | ❌ | |
| producer-consumer | ❌ | ❌ | |
| promise | ❌ | ❌ | |
| property | ❌ | ❌ | |
| prototype | ✔️ | ❌ | |
| proxy | ✔️ | ❌ | |
| queue-load-leveling | ❌ | ❌ | |
| reactor | ❌ | ❌ | |
| reader-writer-lock | ❌ | ❌ | |
| registry | ❌ | ❌ | |
| repository | ❌ | ❌ | |
| resource-acquisition-is-initialization | ❌ | ❌ | |
| retry | ❌ | ❌ | |
| role-object | ❌ | ❌ | |
| saga | ❌ | ❌ | |
| separated-interface | ❌ | ❌ | |
| serialized-entity | ❌ | ❌ | |
| servant | ❌ | ❌ | |
| service-layer | ❌ | ❌ | |
| service-locator | ❌ | ❌ | |
| service-to-worker | ❌ | ❌ | |
| sharding | ❌ | ❌ | |
| singleton | ✔️ | ❌ | |
| spatial-partition | ❌ | ❌ | |
| special-case | ❌ | ❌ | |
| specification | ❌ | ❌ | |
| state | ❌ | ❌ | |
| step-builder | ❌ | ❌ | |
| strangler | ❌ | ❌ | |
| strategy | ❌ | ❌ | |
| subclass-sandbox | ❌ | ❌ | |
| table-module | ❌ | ❌ | |
| template-method | ❌ | ❌ | |
| thread-local-storage | ❌ | ❌ | |
| thread-pool | ❌ | ❌ | |
| throttling | ❌ | ❌ | |
| tolerant-reader | ❌ | ❌ | |
| trampoline | ❌ | ❌ | |
| transaction-script | ❌ | ❌ | |
| twin | ❌ | ❌ | |
| typeobjectpattern | ❌ | ❌ | |
| unit-of-work | ❌ | ❌ | |
| update-method | ❌ | ❌ | |
| value-object | ❌ | ❌ | |
| version-number | ❌ | ❌ | |
| visitor | ❌ | ❌ |