├── .all-contributorsrc ├── .editorconfig ├── .github ├── FUNDING.yml ├── dependabot.yml └── workflows │ ├── maven-ci.yml │ ├── maven-pr-builder.yml │ ├── presubmit.yml │ └── stale.yml ├── .gitignore ├── .mvn └── wrapper │ └── maven-wrapper.properties ├── CONTRIBUTING.MD ├── LICENSE.md ├── PULL_REQUEST_TEMPLATE.md ├── README.md ├── abstract-document ├── README.md ├── etc │ ├── abstract-document.png │ ├── abstract-document.ucls │ └── abstract-document.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── abstractdocument │ │ ├── AbstractDocument.java │ │ ├── App.java │ │ ├── Document.java │ │ └── domain │ │ ├── Car.java │ │ ├── HasModel.java │ │ ├── HasParts.java │ │ ├── HasPrice.java │ │ ├── HasType.java │ │ ├── Part.java │ │ └── enums │ │ └── Property.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── abstractdocument │ ├── AbstractDocumentTest.java │ ├── AppTest.java │ └── DomainTest.java ├── abstract-factory ├── .gitignore ├── README.md ├── etc │ ├── abstract-factory.urm.png │ └── abstract-factory.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── abstractfactory │ │ ├── App.java │ │ ├── Army.java │ │ ├── Castle.java │ │ ├── ElfArmy.java │ │ ├── ElfCastle.java │ │ ├── ElfKing.java │ │ ├── ElfKingdomFactory.java │ │ ├── King.java │ │ ├── Kingdom.java │ │ ├── KingdomFactory.java │ │ ├── OrcArmy.java │ │ ├── OrcCastle.java │ │ ├── OrcKing.java │ │ └── OrcKingdomFactory.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── abstractfactory │ ├── AbstractFactoryTest.java │ └── AppTest.java ├── active-object ├── README.md ├── etc │ ├── active-object-sequence-diagram.png │ ├── active-object.urm.png │ └── active-object.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── activeobject │ │ ├── ActiveCreature.java │ │ ├── App.java │ │ └── Orc.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── activeobject │ ├── ActiveCreatureTest.java │ └── AppTest.java ├── actor-model ├── README.md ├── etc │ ├── Actor_Model_UML_Class_Diagram.png │ └── actor-model.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── actormodel │ │ ├── Actor.java │ │ ├── ActorSystem.java │ │ ├── App.java │ │ ├── ExampleActor.java │ │ ├── ExampleActor2.java │ │ └── Message.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── actor │ └── ActorModelTest.java ├── acyclic-visitor ├── README.md ├── etc │ ├── acyclic-visitor-sequence-diagram.png │ ├── acyclic-visitor.png │ └── acyclic-visitor.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── acyclicvisitor │ │ ├── AllModemVisitor.java │ │ ├── App.java │ │ ├── ConfigureForDosVisitor.java │ │ ├── ConfigureForUnixVisitor.java │ │ ├── Hayes.java │ │ ├── HayesVisitor.java │ │ ├── Modem.java │ │ ├── ModemVisitor.java │ │ ├── Zoom.java │ │ └── ZoomVisitor.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── acyclicvisitor │ ├── AppTest.java │ ├── HayesTest.java │ └── ZoomTest.java ├── adapter ├── README.md ├── etc │ ├── adapter-sequence-diagram.png │ ├── adapter.urm.png │ └── adapter.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── adapter │ │ ├── App.java │ │ ├── Captain.java │ │ ├── FishingBoat.java │ │ ├── FishingBoatAdapter.java │ │ ├── RowingBoat.java │ │ └── package-info.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── adapter │ ├── AdapterPatternTest.java │ └── AppTest.java ├── ambassador ├── README.md ├── etc │ ├── ambassador-sequence-diagram.png │ ├── ambassador.urm.png │ └── ambassador.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── ambassador │ │ ├── App.java │ │ ├── Client.java │ │ ├── RemoteService.java │ │ ├── RemoteServiceInterface.java │ │ ├── RemoteServiceStatus.java │ │ ├── ServiceAmbassador.java │ │ └── util │ │ └── RandomProvider.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── ambassador │ ├── AppTest.java │ ├── ClientTest.java │ ├── RemoteServiceTest.java │ └── ServiceAmbassadorTest.java ├── anti-corruption-layer ├── README.md ├── etc │ ├── anti-corruption-layer-sequence-diagram.png │ ├── anti-corruption-layer.urm.png │ └── anti-corruption-layer.urm.puml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── iluwatar │ │ │ └── corruption │ │ │ ├── App.java │ │ │ ├── package-info.java │ │ │ └── system │ │ │ ├── AntiCorruptionLayer.java │ │ │ ├── DataStore.java │ │ │ ├── ShopException.java │ │ │ ├── legacy │ │ │ ├── LegacyOrder.java │ │ │ ├── LegacyShop.java │ │ │ └── LegacyStore.java │ │ │ └── modern │ │ │ ├── Customer.java │ │ │ ├── ModernOrder.java │ │ │ ├── ModernShop.java │ │ │ ├── ModernStore.java │ │ │ └── Shipment.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── iluwatar │ └── corruption │ └── system │ └── AntiCorruptionLayerTest.java ├── arrange-act-assert ├── README.md ├── etc │ ├── arrange-act-assert-flowchart.png │ └── arrange-act-assert.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── arrangeactassert │ │ └── Cash.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── arrangeactassert │ ├── CashAAATest.java │ └── CashAntiAAATest.java ├── async-method-invocation ├── README.md ├── etc │ ├── async-method-invocation-sequence-diagram.png │ ├── async-method-invocation.urm.png │ └── async-method-invocation.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── async │ │ └── method │ │ └── invocation │ │ ├── App.java │ │ ├── AsyncCallback.java │ │ ├── AsyncExecutor.java │ │ ├── AsyncResult.java │ │ └── ThreadAsyncExecutor.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── async │ └── method │ └── invocation │ ├── AppTest.java │ └── ThreadAsyncExecutorTest.java ├── backpressure ├── README.md ├── etc │ ├── backpressure-sequence-diagram.png │ └── backpressure.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── backpressure │ │ ├── App.java │ │ ├── Publisher.java │ │ └── Subscriber.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── backpressure │ ├── AppTest.java │ ├── LoggerExtension.java │ ├── PublisherTest.java │ └── SubscriberTest.java ├── balking ├── README.md ├── etc │ ├── balking-flowchart.png │ ├── balking.png │ ├── balking.ucls │ └── balking.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── balking │ │ ├── App.java │ │ ├── DelayProvider.java │ │ ├── WashingMachine.java │ │ └── WashingMachineState.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── balking │ ├── AppTest.java │ └── WashingMachineTest.java ├── bloc ├── README.md ├── etc │ ├── bloc-sequence-diagram.png │ ├── bloc.png │ ├── bloc.puml │ └── bloc.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── bloc │ │ ├── Bloc.java │ │ ├── BlocUi.java │ │ ├── ListenerManager.java │ │ ├── Main.java │ │ ├── State.java │ │ └── StateListener.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── bloc │ ├── BlocTest.java │ └── BlocUiTest.java ├── bridge ├── README.md ├── etc │ ├── bridge-sequence-diagram.png │ ├── bridge.urm.png │ └── bridge.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── bridge │ │ ├── App.java │ │ ├── Enchantment.java │ │ ├── FlyingEnchantment.java │ │ ├── Hammer.java │ │ ├── SoulEatingEnchantment.java │ │ ├── Sword.java │ │ └── Weapon.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── bridge │ ├── AppTest.java │ ├── HammerTest.java │ ├── SwordTest.java │ └── WeaponTest.java ├── builder ├── .gitignore ├── README.md ├── etc │ ├── builder-sequence-diagram.png │ ├── builder.urm.png │ └── builder.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── builder │ │ ├── App.java │ │ ├── Armor.java │ │ ├── HairColor.java │ │ ├── HairType.java │ │ ├── Hero.java │ │ ├── Profession.java │ │ └── Weapon.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── builder │ ├── AppTest.java │ └── HeroTest.java ├── business-delegate ├── README.md ├── etc │ ├── business-delegate-sequence-diagram.png │ ├── business-delegate.urm.png │ └── business-delegate.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── business │ │ └── delegate │ │ ├── App.java │ │ ├── BusinessDelegate.java │ │ ├── BusinessLookup.java │ │ ├── MobileClient.java │ │ ├── NetflixService.java │ │ ├── VideoStreamingService.java │ │ └── YouTubeService.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── business │ └── delegate │ ├── AppTest.java │ └── BusinessDelegateTest.java ├── bytecode ├── README.md ├── etc │ ├── bytecode-sequence-diagram.png │ ├── bytecode.urm.png │ └── bytecode.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── bytecode │ │ ├── App.java │ │ ├── Instruction.java │ │ ├── VirtualMachine.java │ │ ├── Wizard.java │ │ └── util │ │ └── InstructionConverterUtil.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── bytecode │ ├── AppTest.java │ ├── VirtualMachineTest.java │ └── util │ └── InstructionConverterUtilTest.java ├── caching ├── .gitignore ├── README.md ├── docker-compose.yml ├── etc │ ├── caching-flowchart.png │ ├── caching.png │ ├── caching.ucls │ └── caching.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── caching │ │ ├── App.java │ │ ├── AppManager.java │ │ ├── CacheStore.java │ │ ├── CachingPolicy.java │ │ ├── LruCache.java │ │ ├── UserAccount.java │ │ ├── constants │ │ ├── CachingConstants.java │ │ └── package-info.java │ │ ├── database │ │ ├── DbManager.java │ │ ├── DbManagerFactory.java │ │ ├── MongoDb.java │ │ ├── VirtualDb.java │ │ └── package-info.java │ │ └── package-info.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── caching │ ├── AppTest.java │ ├── CachingTest.java │ └── database │ └── MongoDbTest.java ├── callback ├── README.md ├── etc │ ├── callback-sequence-diagram.png │ ├── callback.png │ ├── callback.ucls │ └── callback.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── callback │ │ ├── App.java │ │ ├── Callback.java │ │ ├── SimpleTask.java │ │ ├── Task.java │ │ └── package-info.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── callback │ ├── AppTest.java │ └── CallbackTest.java ├── chain-of-responsibility ├── README.md ├── etc │ ├── chain-of-responsibility-flowchart.png │ ├── chain-of-responsibility.urm.png │ └── chain-of-responsibility.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── chain │ │ ├── App.java │ │ ├── OrcCommander.java │ │ ├── OrcKing.java │ │ ├── OrcOfficer.java │ │ ├── OrcSoldier.java │ │ ├── Request.java │ │ ├── RequestHandler.java │ │ └── RequestType.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── chain │ ├── AppTest.java │ └── OrcKingTest.java ├── checkstyle-suppressions.xml ├── circuit-breaker ├── README.md ├── etc │ ├── circuit-breaker-flowchart.png │ ├── circuit-breaker.urm.png │ └── circuit-breaker.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── circuitbreaker │ │ ├── App.java │ │ ├── CircuitBreaker.java │ │ ├── DefaultCircuitBreaker.java │ │ ├── DelayedRemoteService.java │ │ ├── MonitoringService.java │ │ ├── QuickRemoteService.java │ │ ├── RemoteService.java │ │ ├── RemoteServiceException.java │ │ └── State.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── circuitbreaker │ ├── AppTest.java │ ├── DefaultCircuitBreakerTest.java │ ├── DelayedRemoteServiceTest.java │ └── MonitoringServiceTest.java ├── clean-architecture ├── README.md ├── etc │ ├── clean-architecture-flowchart.png │ ├── clean-architecture-mind-map.png │ ├── cleanArchitectureUMLDiagram.PNG │ └── cleanArchitectureUMLDiagram.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── cleanarchitecture │ │ ├── App.java │ │ ├── Cart.java │ │ ├── CartController.java │ │ ├── CartRepository.java │ │ ├── InMemoryCartRepository.java │ │ ├── InMemoryOrderRepository.java │ │ ├── InMemoryProductRepository.java │ │ ├── Order.java │ │ ├── OrderController.java │ │ ├── OrderRepository.java │ │ ├── Product.java │ │ ├── ProductRepository.java │ │ ├── ShoppingCartService.java │ │ └── package-info.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── cleanarchitecture │ ├── AppTest.java │ └── CartControllerTest.java ├── client-session ├── README.md ├── etc │ ├── client-session-sequence-diagram.png │ └── client-session.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── client │ │ └── session │ │ ├── App.java │ │ ├── Request.java │ │ ├── Server.java │ │ └── Session.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── client │ └── session │ ├── AppTest.java │ └── ServerTest.java ├── collecting-parameter ├── README.md ├── etc │ ├── collecting-parameter-flowchart.png │ ├── collecting-parameter.urm.png │ └── collecting-parameter.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── collectingparameter │ │ ├── App.java │ │ ├── PaperSizes.java │ │ ├── PrinterItem.java │ │ └── PrinterQueue.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── collectingparameter │ ├── AppTest.java │ ├── CollectingParameterTest.java │ └── PrinterQueueTest.java ├── collection-pipeline ├── README.md ├── etc │ ├── collection-pipeline-flowchart.png │ ├── collection-pipeline.urm.png │ └── collection-pipeline.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── collectionpipeline │ │ ├── App.java │ │ ├── Car.java │ │ ├── CarFactory.java │ │ ├── Category.java │ │ ├── FunctionalProgramming.java │ │ ├── ImperativeProgramming.java │ │ └── Person.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── collectionpipeline │ └── AppTest.java ├── combinator ├── README.md ├── etc │ ├── combinator-flowchart.png │ ├── combinator.urm.png │ └── combinator.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── combinator │ │ ├── CombinatorApp.java │ │ ├── Finder.java │ │ └── Finders.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── combinator │ ├── CombinatorAppTest.java │ ├── FinderTest.java │ └── FindersTest.java ├── command-query-responsibility-segregation ├── README.md ├── etc │ ├── command-query-responsibility-segregation.urm.puml │ ├── cqrs-architecture-diagram.png │ ├── cqrs.png │ ├── cqrs.ucls │ └── cqrs.urm.puml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── iluwatar │ │ │ └── cqrs │ │ │ ├── app │ │ │ └── App.java │ │ │ ├── commandes │ │ │ ├── CommandService.java │ │ │ └── CommandServiceImpl.java │ │ │ ├── constants │ │ │ └── AppConstants.java │ │ │ ├── domain │ │ │ └── model │ │ │ │ ├── Author.java │ │ │ │ └── Book.java │ │ │ ├── dto │ │ │ ├── Author.java │ │ │ └── Book.java │ │ │ ├── queries │ │ │ ├── QueryService.java │ │ │ └── QueryServiceImpl.java │ │ │ └── util │ │ │ └── HibernateUtil.java │ └── resources │ │ ├── hibernate.cfg.xml │ │ └── logback.xml │ └── test │ ├── java │ └── com │ │ └── iluwatar │ │ └── cqrs │ │ └── IntegrationTest.java │ └── resources │ ├── hibernate.cfg.xml │ └── logback.xml ├── command ├── README.md ├── etc │ ├── command-sequence-diagram.png │ ├── command.png │ ├── command.ucls │ └── command.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── command │ │ ├── App.java │ │ ├── Goblin.java │ │ ├── Size.java │ │ ├── Target.java │ │ ├── Visibility.java │ │ └── Wizard.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── command │ ├── AppTest.java │ └── CommandTest.java ├── commander ├── README.md ├── etc │ ├── commander-sequence-diagram.png │ ├── commander.urm.png │ └── commander.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── commander │ │ ├── AppAllCases.java │ │ ├── Commander.java │ │ ├── Database.java │ │ ├── Order.java │ │ ├── Retry.java │ │ ├── RetryParams.java │ │ ├── Service.java │ │ ├── TimeLimits.java │ │ ├── User.java │ │ ├── employeehandle │ │ ├── EmployeeDatabase.java │ │ └── EmployeeHandle.java │ │ ├── exceptions │ │ ├── DatabaseUnavailableException.java │ │ ├── IsEmptyException.java │ │ ├── ItemUnavailableException.java │ │ ├── PaymentDetailsErrorException.java │ │ └── ShippingNotPossibleException.java │ │ ├── messagingservice │ │ ├── MessagingDatabase.java │ │ └── MessagingService.java │ │ ├── paymentservice │ │ ├── PaymentDatabase.java │ │ └── PaymentService.java │ │ ├── queue │ │ ├── Queue.java │ │ ├── QueueDatabase.java │ │ └── QueueTask.java │ │ └── shippingservice │ │ ├── ShippingDatabase.java │ │ └── ShippingService.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── commander │ ├── CommanderTest.java │ └── RetryTest.java ├── component ├── README.md ├── etc │ ├── component-architecture-diagram.png │ ├── component.uml.png │ ├── component.uml.puml │ └── component.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── component │ │ ├── App.java │ │ ├── GameObject.java │ │ └── component │ │ ├── graphiccomponent │ │ ├── GraphicComponent.java │ │ └── ObjectGraphicComponent.java │ │ ├── inputcomponent │ │ ├── DemoInputComponent.java │ │ ├── InputComponent.java │ │ └── PlayerInputComponent.java │ │ └── physiccomponent │ │ ├── ObjectPhysicComponent.java │ │ └── PhysicComponent.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── component │ ├── AppTest.java │ └── GameObjectTest.java ├── composite-entity ├── README.md ├── etc │ ├── composite-entity-flowchart.png │ ├── composite-entity.urm.puml │ └── composite_entity.urm.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── compositeentity │ │ ├── App.java │ │ ├── CoarseGrainedObject.java │ │ ├── CompositeEntity.java │ │ ├── ConsoleCoarseGrainedObject.java │ │ ├── DependentObject.java │ │ ├── MessageDependentObject.java │ │ └── SignalDependentObject.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── compositeentity │ ├── AppTest.java │ └── PersistenceTest.java ├── composite-view ├── README.md ├── etc │ ├── composite-view-flowchart.png │ ├── composite-view.urm.puml │ └── composite_view.png ├── pom.xml ├── src │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── iluwatar │ │ │ └── compositeview │ │ │ ├── AppServlet.java │ │ │ └── ClientPropertiesBean.java │ └── test │ │ └── java │ │ └── com │ │ └── iluwatar │ │ └── compositeview │ │ ├── AppServletTest.java │ │ └── JavaBeansTest.java └── web │ ├── WEB-INF │ └── web.xml │ ├── businessNews.jsp │ ├── header.jsp │ ├── index.jsp │ ├── localNews.jsp │ ├── newsDisplay.jsp │ ├── scienceNews.jsp │ ├── sportsNews.jsp │ └── worldNews.jsp ├── composite ├── README.md ├── etc │ ├── composite-flowchart.png │ ├── composite.urm.png │ └── composite.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── composite │ │ ├── App.java │ │ ├── Letter.java │ │ ├── LetterComposite.java │ │ ├── Messenger.java │ │ ├── Sentence.java │ │ └── Word.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── composite │ ├── AppTest.java │ └── MessengerTest.java ├── context-object ├── README.md ├── etc │ ├── context-object-sequence-diagram.png │ ├── context-object.png │ └── context-object.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── context │ │ └── object │ │ ├── App.java │ │ ├── LayerA.java │ │ ├── LayerB.java │ │ ├── LayerC.java │ │ ├── ServiceContext.java │ │ └── ServiceContextFactory.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── contect │ └── object │ ├── AppTest.java │ └── ServiceContextTest.java ├── converter ├── README.md ├── etc │ ├── Converter.ucls │ ├── converter-sequence-diagram.png │ ├── converter.png │ └── converter.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── converter │ │ ├── App.java │ │ ├── Converter.java │ │ ├── User.java │ │ ├── UserConverter.java │ │ └── UserDto.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── converter │ ├── AppTest.java │ └── ConverterTest.java ├── curiously-recurring-template-pattern ├── README.md ├── etc │ ├── crtp-flowchart.png │ └── curiously-recurring-template-pattern.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── crtp │ │ ├── App.java │ │ ├── Fighter.java │ │ ├── MmaBantamweightFighter.java │ │ ├── MmaFighter.java │ │ ├── MmaHeavyweightFighter.java │ │ └── MmaLightweightFighter.java │ └── test │ └── java │ └── crtp │ ├── AppTest.java │ └── FightTest.java ├── currying ├── README.md ├── etc │ ├── currying-sequence-diagram.png │ ├── currying.urm.png │ └── currying.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── currying │ │ ├── App.java │ │ ├── Book.java │ │ └── Genre.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── currying │ ├── AppTest.java │ └── BookCurryingTest.java ├── data-access-object ├── README.md ├── etc │ ├── dao-sequence-diagram.png │ ├── dao.png │ ├── dao.ucls │ ├── dao.urm.puml │ └── data-access-object.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── dao │ │ ├── App.java │ │ ├── CustomException.java │ │ ├── Customer.java │ │ ├── CustomerDao.java │ │ ├── CustomerSchemaSql.java │ │ ├── DbCustomerDao.java │ │ └── InMemoryCustomerDao.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── dao │ ├── AppTest.java │ ├── CustomerTest.java │ ├── DbCustomerDaoTest.java │ └── InMemoryCustomerDaoTest.java ├── data-bus ├── .gitignore ├── README.md ├── etc │ ├── data-bus-sequence-diagram.png │ ├── data-bus.urm.png │ └── data-bus.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── databus │ │ ├── AbstractDataType.java │ │ ├── App.java │ │ ├── DataBus.java │ │ ├── DataType.java │ │ ├── Member.java │ │ ├── data │ │ ├── MessageData.java │ │ ├── StartingData.java │ │ └── StoppingData.java │ │ └── members │ │ ├── MessageCollectorMember.java │ │ └── StatusMember.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── databus │ ├── DataBusTest.java │ └── members │ ├── MessageCollectorMemberTest.java │ └── StatusMemberTest.java ├── data-locality ├── README.md ├── etc │ ├── data-locality-flowchart.png │ ├── data-locality-mind-map.png │ ├── data-locality.urm.png │ └── data-locality.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── data │ │ └── locality │ │ ├── Application.java │ │ └── game │ │ ├── GameEntity.java │ │ └── component │ │ ├── AiComponent.java │ │ ├── Component.java │ │ ├── PhysicsComponent.java │ │ ├── RenderComponent.java │ │ └── manager │ │ ├── AiComponentManager.java │ │ ├── PhysicsComponentManager.java │ │ └── RenderComponentManager.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── data │ └── locality │ └── ApplicationTest.java ├── data-mapper ├── README.md ├── etc │ ├── data-mapper-sequence-diagram.png │ ├── data-mapper.png │ ├── data-mapper.ucls │ └── data-mapper.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── datamapper │ │ ├── App.java │ │ ├── DataMapperException.java │ │ ├── Student.java │ │ ├── StudentDataMapper.java │ │ └── StudentDataMapperImpl.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── datamapper │ ├── AppTest.java │ ├── DataMapperTest.java │ └── StudentTest.java ├── data-transfer-object ├── README.md ├── etc │ ├── data-transfer-object.ucls │ ├── data-transfer-object.urm.png │ ├── data-transfer-object.urm.puml │ └── dto-sequence-diagram.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── datatransfer │ │ ├── App.java │ │ ├── customer │ │ ├── CustomerDto.java │ │ └── CustomerResource.java │ │ └── product │ │ ├── Product.java │ │ ├── ProductDto.java │ │ └── ProductResource.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── datatransfer │ ├── AppTest.java │ └── customer │ └── CustomerResourceTest.java ├── decorator ├── README.md ├── etc │ ├── decorator-sequence-diagram.png │ ├── decorator.urm.png │ └── decorator.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── decorator │ │ ├── App.java │ │ ├── ClubbedTroll.java │ │ ├── SimpleTroll.java │ │ └── Troll.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── decorator │ ├── AppTest.java │ ├── ClubbedTrollTest.java │ └── SimpleTrollTest.java ├── delegation ├── README.md ├── etc │ ├── delegation-sequence-diagram.png │ ├── delegation.png │ ├── delegation.ucls │ └── delegation.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── delegation │ │ └── simple │ │ ├── App.java │ │ ├── Printer.java │ │ ├── PrinterController.java │ │ └── printers │ │ ├── CanonPrinter.java │ │ ├── EpsonPrinter.java │ │ └── HpPrinter.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── delegation │ └── simple │ ├── AppTest.java │ └── DelegateTest.java ├── dependency-injection ├── README.md ├── etc │ ├── dependency-injection-sequence-diagram.png │ ├── dependency-injection.png │ ├── dependency-injection.ucls │ └── dependency-injection.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── dependency │ │ └── injection │ │ ├── AdvancedSorceress.java │ │ ├── AdvancedWizard.java │ │ ├── App.java │ │ ├── GuiceWizard.java │ │ ├── OldTobyTobacco.java │ │ ├── RivendellTobacco.java │ │ ├── SecondBreakfastTobacco.java │ │ ├── SimpleWizard.java │ │ ├── Tobacco.java │ │ ├── TobaccoModule.java │ │ └── Wizard.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── dependency │ └── injection │ ├── AdvancedSorceressTest.java │ ├── AdvancedWizardTest.java │ ├── AppTest.java │ ├── GuiceWizardTest.java │ ├── SimpleWizardTest.java │ └── utils │ └── InMemoryAppender.java ├── dirty-flag ├── README.md ├── etc │ ├── dirty-flag-flowchart.png │ ├── dirty-flag.png │ ├── dirty-flag.ucls │ └── dirty-flag.urm.puml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── iluwatar │ │ │ └── dirtyflag │ │ │ ├── App.java │ │ │ ├── DataFetcher.java │ │ │ └── World.java │ └── resources │ │ └── world.txt │ └── test │ └── java │ └── org │ └── dirty │ └── flag │ ├── AppTest.java │ └── DirtyFlagTest.java ├── domain-model ├── README.md ├── etc │ ├── domain-model-mind-map.png │ ├── domain-model.urm.png │ └── domain-model.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── domainmodel │ │ ├── App.java │ │ ├── Customer.java │ │ ├── CustomerDao.java │ │ ├── CustomerDaoImpl.java │ │ ├── Product.java │ │ ├── ProductDao.java │ │ └── ProductDaoImpl.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── domainmodel │ ├── AppTest.java │ ├── CustomerDaoImplTest.java │ ├── CustomerTest.java │ ├── ProductDaoImplTest.java │ ├── ProductTest.java │ └── TestUtils.java ├── double-buffer ├── README.md ├── etc │ ├── double-buffer-sequence-diagram.png │ ├── double-buffer.urm.png │ └── double-buffer.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── doublebuffer │ │ ├── App.java │ │ ├── Buffer.java │ │ ├── FrameBuffer.java │ │ ├── Pixel.java │ │ └── Scene.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── doublebuffer │ ├── AppTest.java │ ├── FrameBufferTest.java │ └── SceneTest.java ├── double-checked-locking ├── README.md ├── etc │ ├── double-checked-locking-flowchart.png │ ├── double-checked-locking.png │ ├── double-checked-locking.ucls │ ├── double-checked-locking.urm.puml │ └── double_checked_locking_1.png ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── iluwatar │ │ │ └── doublechecked │ │ │ └── locking │ │ │ ├── App.java │ │ │ ├── Inventory.java │ │ │ └── Item.java │ └── resources │ │ └── logback.xml │ └── test │ └── java │ └── com │ └── iluwatar │ └── doublechecked │ └── locking │ ├── AppTest.java │ └── InventoryTest.java ├── double-dispatch ├── README.md ├── etc │ ├── double-dispatch-sequence-diagram.png │ ├── double-dispatch.png │ ├── double-dispatch.ucls │ └── double-dispatch.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── doubledispatch │ │ ├── App.java │ │ ├── FlamingAsteroid.java │ │ ├── GameObject.java │ │ ├── Meteoroid.java │ │ ├── Rectangle.java │ │ ├── SpaceStationIss.java │ │ ├── SpaceStationMir.java │ │ └── constants │ │ └── AppConstants.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── doubledispatch │ ├── AppTest.java │ ├── CollisionTest.java │ ├── FlamingAsteroidTest.java │ ├── MeteoroidTest.java │ ├── RectangleTest.java │ ├── SpaceStationIssTest.java │ └── SpaceStationMirTest.java ├── dynamic-proxy ├── README.md ├── etc │ ├── dynamic-proxy-sequence-diagram.png │ ├── dynamic-proxy.urm.png │ └── dynamic-proxy.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── dynamicproxy │ │ ├── Album.java │ │ ├── AlbumInvocationHandler.java │ │ ├── AlbumService.java │ │ ├── App.java │ │ └── tinyrestclient │ │ ├── JsonUtil.java │ │ ├── TinyRestClient.java │ │ └── annotation │ │ ├── Body.java │ │ ├── Delete.java │ │ ├── Get.java │ │ ├── Http.java │ │ ├── Path.java │ │ ├── Post.java │ │ └── Put.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── dynamicproxy │ └── AppTest.java ├── event-aggregator ├── README.md ├── etc │ ├── classes.png │ ├── classes.ucls │ ├── event-aggregator-sequence-diagram.png │ └── event-aggregator.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── event │ │ └── aggregator │ │ ├── App.java │ │ ├── Event.java │ │ ├── EventEmitter.java │ │ ├── EventObserver.java │ │ ├── KingJoffrey.java │ │ ├── KingsHand.java │ │ ├── LordBaelish.java │ │ ├── LordVarys.java │ │ ├── Scout.java │ │ └── Weekday.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── event │ └── aggregator │ ├── AppTest.java │ ├── EventEmitterTest.java │ ├── EventTest.java │ ├── KingJoffreyTest.java │ ├── KingsHandTest.java │ ├── LordBaelishTest.java │ ├── LordVarysTest.java │ ├── ScoutTest.java │ └── WeekdayTest.java ├── event-based-asynchronous ├── README.md ├── etc │ ├── event-asynchronous.png │ ├── event-asynchronous.ucls │ ├── event-asynchronous.urm.puml │ ├── event-based-asynchronous-sequence-diagram.png │ └── event-based-asynchronous.urm.puml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── iluwatar │ │ │ └── event │ │ │ └── asynchronous │ │ │ ├── App.java │ │ │ ├── AsyncEvent.java │ │ │ ├── Event.java │ │ │ ├── EventDoesNotExistException.java │ │ │ ├── EventManager.java │ │ │ ├── InvalidOperationException.java │ │ │ ├── LongRunningEventException.java │ │ │ ├── MaxNumOfEventsAllowedException.java │ │ │ └── ThreadCompleteListener.java │ └── resources │ │ └── config.properties │ └── test │ └── java │ └── com │ └── iluwatar │ └── event │ └── asynchronous │ ├── AppTest.java │ └── EventAsynchronousTest.java ├── event-driven-architecture ├── README.md ├── etc │ ├── eda-architecture-diagram.png │ ├── eda.png │ ├── eda.ucls │ └── event-driven-architecture.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── eda │ │ ├── App.java │ │ ├── event │ │ ├── AbstractEvent.java │ │ ├── UserCreatedEvent.java │ │ └── UserUpdatedEvent.java │ │ ├── framework │ │ ├── Event.java │ │ ├── EventDispatcher.java │ │ └── Handler.java │ │ ├── handler │ │ ├── UserCreatedEventHandler.java │ │ └── UserUpdatedEventHandler.java │ │ └── model │ │ └── User.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── eda │ ├── AppTest.java │ ├── event │ └── UserCreatedEventTest.java │ └── framework │ └── EventDispatcherTest.java ├── event-queue ├── README.md ├── etc │ ├── Bass-Drum-1.aif │ ├── Bass-Drum-1.wav │ ├── Closed-Hi-Hat-1.aif │ ├── Closed-Hi-Hat-1.wav │ ├── event-queue-sequence-diagram.png │ └── event-queue.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── event │ │ └── queue │ │ ├── App.java │ │ ├── Audio.java │ │ └── PlayMessage.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── event │ └── queue │ └── AudioTest.java ├── event-sourcing ├── README.md ├── etc │ ├── event-sourcing-architecture-diagram.png │ ├── event-sourcing.png │ ├── event-sourcing.ucls │ └── event-sourcing.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── event │ │ └── sourcing │ │ ├── app │ │ └── App.java │ │ ├── domain │ │ └── Account.java │ │ ├── event │ │ ├── AccountCreateEvent.java │ │ ├── DomainEvent.java │ │ ├── MoneyDepositEvent.java │ │ └── MoneyTransferEvent.java │ │ ├── processor │ │ ├── DomainEventProcessor.java │ │ ├── EventJournal.java │ │ └── JsonFileJournal.java │ │ └── state │ │ └── AccountAggregate.java │ └── test │ └── java │ └── IntegrationTest.java ├── execute-around ├── README.md ├── etc │ ├── execute-around-flowchart.png │ ├── execute-around.png │ ├── execute-around.ucls │ └── execute-around.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── execute │ │ └── around │ │ ├── App.java │ │ ├── FileWriterAction.java │ │ └── SimpleFileWriter.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── execute │ └── around │ ├── AppTest.java │ └── SimpleFileWriterTest.java ├── extension-objects ├── README.md ├── etc │ ├── extension-objects-sequence-diagram.png │ ├── extension-objects.urm.puml │ ├── extension_obj.png │ └── extension_obj.ucls ├── pom.xml └── src │ ├── main │ └── java │ │ ├── App.java │ │ ├── abstractextensions │ │ ├── CommanderExtension.java │ │ ├── SergeantExtension.java │ │ ├── SoldierExtension.java │ │ └── UnitExtension.java │ │ ├── concreteextensions │ │ ├── Commander.java │ │ ├── Sergeant.java │ │ └── Soldier.java │ │ └── units │ │ ├── CommanderUnit.java │ │ ├── SergeantUnit.java │ │ ├── SoldierUnit.java │ │ └── Unit.java │ └── test │ └── java │ ├── AppTest.java │ ├── concreteextensions │ ├── CommanderTest.java │ ├── SergeantTest.java │ └── SoldierTest.java │ └── units │ ├── CommanderUnitTest.java │ ├── SergeantUnitTest.java │ ├── SoldierUnitTest.java │ └── UnitTest.java ├── facade ├── README.md ├── etc │ ├── facade-sequence-diagram.png │ ├── facade.urm.png │ └── facade.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── facade │ │ ├── App.java │ │ ├── DwarvenCartOperator.java │ │ ├── DwarvenGoldDigger.java │ │ ├── DwarvenGoldmineFacade.java │ │ ├── DwarvenMineWorker.java │ │ └── DwarvenTunnelDigger.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── facade │ ├── AppTest.java │ └── DwarvenGoldmineFacadeTest.java ├── factory-kit ├── README.md ├── etc │ ├── factory-kit-sequence-diagram.png │ ├── factory-kit.png │ ├── factory-kit.ucls │ └── factory-kit.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── factorykit │ │ ├── App.java │ │ ├── Axe.java │ │ ├── Bow.java │ │ ├── Builder.java │ │ ├── Spear.java │ │ ├── Sword.java │ │ ├── Weapon.java │ │ ├── WeaponFactory.java │ │ └── WeaponType.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── factorykit │ ├── app │ └── AppTest.java │ └── factorykit │ └── FactoryKitTest.java ├── factory-method ├── .gitignore ├── README.md ├── etc │ ├── factory-method-sequence-diagram.png │ ├── factory-method.urm.png │ └── factory-method.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── factory │ │ └── method │ │ ├── App.java │ │ ├── Blacksmith.java │ │ ├── ElfBlacksmith.java │ │ ├── ElfWeapon.java │ │ ├── OrcBlacksmith.java │ │ ├── OrcWeapon.java │ │ ├── Weapon.java │ │ └── WeaponType.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── factory │ └── method │ ├── AppTest.java │ └── FactoryMethodTest.java ├── factory ├── README.md ├── etc │ ├── factory-sequence-diagram.png │ ├── factory.urm.png │ └── factory.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── factory │ │ ├── App.java │ │ ├── Coin.java │ │ ├── CoinFactory.java │ │ ├── CoinType.java │ │ ├── CopperCoin.java │ │ └── GoldCoin.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── factory │ ├── AppTest.java │ └── CoinFactoryTest.java ├── fanout-fanin ├── README.md ├── etc │ ├── fan-out-fan-in-flowchart.png │ ├── fanout-fanin.png │ └── fanout-fanin.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── fanout │ │ └── fanin │ │ ├── App.java │ │ ├── Consumer.java │ │ ├── FanOutFanIn.java │ │ └── SquareNumberRequest.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── fanout │ └── fanin │ ├── AppTest.java │ ├── FanOutFanInTest.java │ └── SquareNumberRequestTest.java ├── feature-toggle ├── README.md ├── etc │ ├── feature-toggle-flowchart.png │ ├── feature-toggle.png │ ├── feature-toggle.ucls │ └── feature-toggle.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── featuretoggle │ │ ├── App.java │ │ ├── pattern │ │ ├── Service.java │ │ ├── propertiesversion │ │ │ └── PropertiesFeatureToggleVersion.java │ │ └── tieredversion │ │ │ └── TieredFeatureToggleVersion.java │ │ └── user │ │ ├── User.java │ │ └── UserGroup.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── featuretoggle │ ├── pattern │ ├── propertiesversion │ │ └── PropertiesFeatureToggleVersionTest.java │ └── tieredversion │ │ └── TieredFeatureToggleVersionTest.java │ └── user │ └── UserGroupTest.java ├── filterer ├── README.md ├── etc │ ├── filterer-flowchart.png │ ├── filterer.png │ └── filterer.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── filterer │ │ ├── App.java │ │ ├── domain │ │ └── Filterer.java │ │ └── threat │ │ ├── ProbabilisticThreatAwareSystem.java │ │ ├── ProbableThreat.java │ │ ├── SimpleProbabilisticThreatAwareSystem.java │ │ ├── SimpleProbableThreat.java │ │ ├── SimpleThreat.java │ │ ├── SimpleThreatAwareSystem.java │ │ ├── Threat.java │ │ ├── ThreatAwareSystem.java │ │ └── ThreatType.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── filterer │ ├── AppTest.java │ └── threat │ ├── SimpleProbabilisticThreatAwareSystemTest.java │ └── SimpleThreatAwareSystemTest.java ├── fluent-interface ├── README.md ├── etc │ ├── fluent-interface-sequence-diagram.png │ ├── fluent-interface.urm.puml │ ├── fluentinterface.png │ ├── fluentinterface.ucls │ └── fluentinterface.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── fluentinterface │ │ ├── app │ │ └── App.java │ │ └── fluentiterable │ │ ├── FluentIterable.java │ │ ├── lazy │ │ ├── DecoratingIterator.java │ │ └── LazyFluentIterable.java │ │ └── simple │ │ └── SimpleFluentIterable.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── fluentinterface │ ├── app │ └── AppTest.java │ └── fluentiterable │ ├── FluentIterableTest.java │ ├── lazy │ └── LazyFluentIterableTest.java │ └── simple │ └── SimpleFluentIterableTest.java ├── flux ├── README.md ├── etc │ ├── flux-architecture-diagram.png │ ├── flux.png │ ├── flux.ucls │ └── flux.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── flux │ │ ├── action │ │ ├── Action.java │ │ ├── ActionType.java │ │ ├── Content.java │ │ ├── ContentAction.java │ │ ├── MenuAction.java │ │ └── MenuItem.java │ │ ├── app │ │ └── App.java │ │ ├── dispatcher │ │ └── Dispatcher.java │ │ ├── store │ │ ├── ContentStore.java │ │ ├── MenuStore.java │ │ └── Store.java │ │ └── view │ │ ├── ContentView.java │ │ ├── MenuView.java │ │ └── View.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── flux │ ├── action │ ├── ContentTest.java │ └── MenuItemTest.java │ ├── app │ └── AppTest.java │ ├── dispatcher │ └── DispatcherTest.java │ ├── store │ ├── ContentStoreTest.java │ └── MenuStoreTest.java │ └── view │ ├── ContentViewTest.java │ └── MenuViewTest.java ├── flyweight ├── README.md ├── etc │ ├── flyweight-sequence-diagram.png │ ├── flyweight.urm.png │ └── flyweight.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── flyweight │ │ ├── AlchemistShop.java │ │ ├── App.java │ │ ├── HealingPotion.java │ │ ├── HolyWaterPotion.java │ │ ├── InvisibilityPotion.java │ │ ├── PoisonPotion.java │ │ ├── Potion.java │ │ ├── PotionFactory.java │ │ ├── PotionType.java │ │ └── StrengthPotion.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── flyweight │ ├── AlchemistShopTest.java │ └── AppTest.java ├── front-controller ├── README.md ├── etc │ ├── front-controller-architecture-diagram.png │ ├── front-controller.png │ ├── front-controller.ucls │ └── front-controller.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── front │ │ └── controller │ │ ├── App.java │ │ ├── ApplicationException.java │ │ ├── ArcherCommand.java │ │ ├── ArcherView.java │ │ ├── CatapultCommand.java │ │ ├── CatapultView.java │ │ ├── Command.java │ │ ├── Dispatcher.java │ │ ├── ErrorView.java │ │ ├── FrontController.java │ │ ├── UnknownCommand.java │ │ └── View.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── front │ └── controller │ ├── AppTest.java │ ├── ApplicationExceptionTest.java │ ├── CommandTest.java │ ├── DispatcherTest.java │ ├── FrontControllerTest.java │ ├── ViewTest.java │ └── utils │ └── InMemoryAppender.java ├── function-composition ├── .gitignore ├── README.md ├── etc │ ├── function-composition-sequence-diagram.png │ ├── function-composition.urm.puml │ ├── function.composition.urm.png │ └── function.composition.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── function │ │ └── composition │ │ ├── App.java │ │ └── FunctionComposer.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── function │ └── composition │ ├── AppTest.java │ └── FunctionComposerTest.java ├── game-loop ├── README.md ├── etc │ ├── game-loop-flowchart.png │ ├── game-loop.urm.png │ └── game-loop.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── gameloop │ │ ├── App.java │ │ ├── Bullet.java │ │ ├── FixedStepGameLoop.java │ │ ├── FrameBasedGameLoop.java │ │ ├── GameController.java │ │ ├── GameLoop.java │ │ ├── GameStatus.java │ │ └── VariableStepGameLoop.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── gameloop │ ├── AppTest.java │ ├── FixedStepGameLoopTest.java │ ├── FrameBasedGameLoopTest.java │ ├── GameControllerTest.java │ ├── GameLoopTest.java │ └── VariableStepGameLoopTest.java ├── gateway ├── README.md ├── etc │ ├── gateway-sequence-diagram.png │ ├── gateway.urm.png │ └── gateway.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── gateway │ │ ├── App.java │ │ ├── ExternalServiceA.java │ │ ├── ExternalServiceB.java │ │ ├── ExternalServiceC.java │ │ ├── Gateway.java │ │ └── GatewayFactory.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── gateway │ ├── AppTest.java │ └── ServiceFactoryTest.java ├── guarded-suspension ├── README.md ├── etc │ ├── guarded-suspension-sequence-diagram.png │ ├── guarded-suspension.png │ ├── guarded-suspension.ucls │ └── guarded-suspension.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── guarded │ │ └── suspension │ │ ├── App.java │ │ └── GuardedQueue.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── guarded │ └── suspension │ └── GuardedQueueTest.java ├── half-sync-half-async ├── README.md ├── etc │ ├── half-sync-half-async-sequence-diagram.png │ ├── half-sync-half-async.png │ ├── half-sync-half-async.ucls │ └── half-sync-half-async.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── halfsynchalfasync │ │ ├── App.java │ │ ├── AsyncTask.java │ │ └── AsynchronousService.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── halfsynchalfasync │ ├── AppTest.java │ └── AsynchronousServiceTest.java ├── health-check ├── README.md ├── etc │ ├── health-check-sequence-diagram.png │ ├── health-check.png │ ├── health-check.puml │ └── health-check.urm.puml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── iluwatar │ │ │ └── health │ │ │ └── check │ │ │ ├── App.java │ │ │ ├── AsynchronousHealthChecker.java │ │ │ ├── CpuHealthIndicator.java │ │ │ ├── CustomHealthIndicator.java │ │ │ ├── DatabaseTransactionHealthIndicator.java │ │ │ ├── GarbageCollectionHealthIndicator.java │ │ │ ├── HealthCheck.java │ │ │ ├── HealthCheckInterruptedException.java │ │ │ ├── HealthCheckRepository.java │ │ │ ├── MemoryHealthIndicator.java │ │ │ └── RetryConfig.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ ├── AppTest.java │ ├── AsynchronousHealthCheckerTest.java │ ├── CpuHealthIndicatorTest.java │ ├── CustomHealthIndicatorTest.java │ ├── DatabaseTransactionHealthIndicatorTest.java │ ├── GarbageCollectionHealthIndicatorTest.java │ ├── HealthCheckRepositoryTest.java │ ├── HealthEndpointIntegrationTest.java │ ├── MemoryHealthIndicatorTest.java │ └── RetryConfigTest.java ├── hexagonal-architecture ├── README.md ├── etc │ ├── hexagonal-architecture-diagram.png │ ├── hexagonal-architecture.urm.puml │ ├── hexagonal.png │ ├── hexagonal.ucls │ └── hexagonal.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── hexagonal │ │ ├── App.java │ │ ├── administration │ │ ├── ConsoleAdministration.java │ │ ├── ConsoleAdministrationSrv.java │ │ └── ConsoleAdministrationSrvImpl.java │ │ ├── banking │ │ ├── InMemoryBank.java │ │ ├── MongoBank.java │ │ └── WireTransfers.java │ │ ├── database │ │ ├── InMemoryTicketRepository.java │ │ ├── LotteryTicketRepository.java │ │ └── MongoTicketRepository.java │ │ ├── domain │ │ ├── LotteryAdministration.java │ │ ├── LotteryConstants.java │ │ ├── LotteryNumbers.java │ │ ├── LotteryService.java │ │ ├── LotteryTicket.java │ │ ├── LotteryTicketCheckResult.java │ │ ├── LotteryTicketId.java │ │ ├── LotteryUtils.java │ │ └── PlayerDetails.java │ │ ├── eventlog │ │ ├── LotteryEventLog.java │ │ ├── MongoEventLog.java │ │ └── StdOutEventLog.java │ │ ├── module │ │ ├── LotteryModule.java │ │ └── LotteryTestingModule.java │ │ ├── mongo │ │ └── MongoConnectionPropertiesLoader.java │ │ ├── sampledata │ │ └── SampleData.java │ │ └── service │ │ ├── ConsoleLottery.java │ │ ├── LotteryConsoleService.java │ │ └── LotteryConsoleServiceImpl.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── hexagonal │ ├── AppTest.java │ ├── banking │ ├── InMemoryBankTest.java │ └── MongoBankTest.java │ ├── database │ ├── InMemoryTicketRepositoryTest.java │ └── MongoTicketRepositoryTest.java │ ├── domain │ ├── LotteryNumbersTest.java │ ├── LotteryTest.java │ ├── LotteryTicketCheckResultTest.java │ ├── LotteryTicketIdTest.java │ ├── LotteryTicketTest.java │ └── PlayerDetailsTest.java │ ├── eventlog │ └── MongoEventLogTest.java │ └── test │ └── LotteryTestUtils.java ├── identity-map ├── README.md ├── etc │ ├── IdentityMap.png │ ├── identity-map-sequence-diagram.png │ └── identity-map.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── identitymap │ │ ├── App.java │ │ ├── IdNotFoundException.java │ │ ├── IdentityMap.java │ │ ├── Person.java │ │ ├── PersonDbSimulator.java │ │ ├── PersonDbSimulatorImplementation.java │ │ └── PersonFinder.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── identitymap │ ├── AppTest.java │ ├── IdentityMapTest.java │ ├── PersonDbSimulatorImplementationTest.java │ ├── PersonFinderTest.java │ └── PersonTest.java ├── intercepting-filter ├── README.md ├── etc │ ├── intercepting-filter-architecture-diagram.png │ ├── intercepting-filter.png │ ├── intercepting-filter.ucls │ └── intercepting-filter.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── intercepting │ │ └── filter │ │ ├── AbstractFilter.java │ │ ├── AddressFilter.java │ │ ├── App.java │ │ ├── Client.java │ │ ├── ContactFilter.java │ │ ├── DepositFilter.java │ │ ├── Filter.java │ │ ├── FilterChain.java │ │ ├── FilterManager.java │ │ ├── NameFilter.java │ │ ├── Order.java │ │ ├── OrderFilter.java │ │ └── Target.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── intercepting │ └── filter │ ├── AppTest.java │ ├── FilterManagerTest.java │ ├── FilterTest.java │ ├── OrderTest.java │ └── TargetTest.java ├── interpreter ├── README.md ├── etc │ ├── interpreter-sequence-diagram.png │ ├── interpreter.png │ ├── interpreter.ucls │ ├── interpreter.urm.puml │ └── interpreter_1.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── interpreter │ │ ├── App.java │ │ ├── Expression.java │ │ ├── MinusExpression.java │ │ ├── MultiplyExpression.java │ │ ├── NumberExpression.java │ │ └── PlusExpression.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── interpreter │ ├── AppTest.java │ ├── ExpressionTest.java │ ├── MinusExpressionTest.java │ ├── MultiplyExpressionTest.java │ ├── NumberExpressionTest.java │ └── PlusExpressionTest.java ├── iterator ├── README.md ├── etc │ ├── bst.jpg │ ├── iterator-sequence-diagram.png │ ├── iterator.png │ ├── iterator.ucls │ ├── iterator.urm.puml │ └── iterator_1.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── iterator │ │ ├── App.java │ │ ├── Iterator.java │ │ ├── bst │ │ ├── BstIterator.java │ │ ├── README.md │ │ └── TreeNode.java │ │ └── list │ │ ├── Item.java │ │ ├── ItemType.java │ │ ├── TreasureChest.java │ │ └── TreasureChestItemIterator.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── iterator │ ├── AppTest.java │ ├── bst │ └── BstIteratorTest.java │ └── list │ └── TreasureChestTest.java ├── layered-architecture ├── README.md ├── etc │ ├── layered-architecture-diagram.png │ ├── layers.png │ ├── layers.ucls │ └── layers.urm.puml ├── pom.xml └── src │ ├── main │ ├── java │ │ ├── com │ │ │ └── iluwatar │ │ │ │ └── layers │ │ │ │ ├── Runner.java │ │ │ │ └── app │ │ │ │ └── LayersApp.java │ │ ├── dao │ │ │ ├── CakeDao.java │ │ │ ├── CakeLayerDao.java │ │ │ └── CakeToppingDao.java │ │ ├── dto │ │ │ ├── CakeInfo.java │ │ │ ├── CakeLayerInfo.java │ │ │ └── CakeToppingInfo.java │ │ ├── entity │ │ │ ├── Cake.java │ │ │ ├── CakeLayer.java │ │ │ └── CakeTopping.java │ │ ├── exception │ │ │ └── CakeBakingException.java │ │ ├── service │ │ │ ├── CakeBakingService.java │ │ │ └── CakeBakingServiceImpl.java │ │ └── view │ │ │ ├── CakeViewImpl.java │ │ │ └── View.java │ └── resources │ │ ├── META-INF │ │ └── logback.xml │ │ └── application.properties │ └── test │ └── java │ └── com │ └── iluwatar │ └── layers │ ├── app │ └── LayersAppTests.java │ ├── entity │ └── CakeTest.java │ ├── exception │ └── CakeBakingExceptionTest.java │ ├── service │ └── CakeBakingServiceImplTest.java │ └── view │ └── CakeViewImplTest.java ├── lazy-loading ├── README.md ├── etc │ ├── lazy-loading-sequence-diagram.png │ ├── lazy-loading.png │ ├── lazy-loading.ucls │ └── lazy-loading.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── lazy │ │ └── loading │ │ ├── App.java │ │ ├── Heavy.java │ │ ├── HolderNaive.java │ │ ├── HolderThreadSafe.java │ │ └── Java8Holder.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── lazy │ └── loading │ ├── AbstractHolderTest.java │ ├── AppTest.java │ ├── HolderNaiveTest.java │ ├── HolderThreadSafeTest.java │ └── Java8HolderTest.java ├── leader-election ├── README.md ├── etc │ ├── leader-election-sequence-diagram.png │ ├── leader-election.urm.png │ └── leader-election.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── leaderelection │ │ ├── AbstractInstance.java │ │ ├── AbstractMessageManager.java │ │ ├── Instance.java │ │ ├── Message.java │ │ ├── MessageManager.java │ │ ├── MessageType.java │ │ ├── bully │ │ ├── BullyApp.java │ │ ├── BullyInstance.java │ │ └── BullyMessageManager.java │ │ └── ring │ │ ├── RingApp.java │ │ ├── RingInstance.java │ │ └── RingMessageManager.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── leaderelection │ ├── MessageTest.java │ ├── bully │ ├── BullyAppTest.java │ ├── BullyMessageManagerTest.java │ └── BullyinstanceTest.java │ └── ring │ ├── RingAppTest.java │ ├── RingInstanceTest.java │ └── RingMessageManagerTest.java ├── leader-followers ├── README.md ├── etc │ ├── leader-followers-sequence-diagram.png │ ├── leader-followers.png │ └── leader-followers.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── leaderfollowers │ │ ├── App.java │ │ ├── Task.java │ │ ├── TaskHandler.java │ │ ├── TaskSet.java │ │ ├── WorkCenter.java │ │ └── Worker.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── leaderfollowers │ ├── AppTest.java │ ├── TaskHandlerTest.java │ ├── TaskSetTest.java │ └── WorkCenterTest.java ├── lgpl-3.0.txt ├── localization ├── ar │ ├── README.md │ ├── abstract-document │ │ ├── README.md │ │ └── etc │ │ │ └── abstract-document.png │ ├── abstract-factory │ │ ├── README.md │ │ └── etc │ │ │ └── abstract-factory.urm.png │ ├── active-object │ │ ├── README.md │ │ └── etc │ │ │ └── active-object.urm.png │ ├── acyclic-visitor │ │ ├── README.md │ │ └── etc │ │ │ └── acyclic-visitor.png │ ├── adapter │ │ ├── README.md │ │ └── etc │ │ │ └── adapter.urm.png │ ├── aggregator-microservices │ │ ├── README.md │ │ └── aggregator-service │ │ │ └── etc │ │ │ └── aggregator-service.png │ ├── ambassador │ │ ├── README.md │ │ └── etc │ │ │ └── ambassador.urm.png │ ├── api-gateway │ │ ├── README.md │ │ └── etc │ │ │ └── api-gateway.png │ ├── arrange-act-assert │ │ └── README.md │ ├── async-method-invocation │ │ ├── README.md │ │ └── etc │ │ │ └── async-method-invocation.png │ ├── balking │ │ ├── README.md │ │ └── etc │ │ │ └── balking.png │ ├── bridge │ │ ├── README.md │ │ └── etc │ │ │ └── bridge.urm.png │ ├── builder │ │ ├── README.md │ │ └── etc │ │ │ └── builder.urm.png │ ├── business-delegate │ │ ├── README.md │ │ └── etc │ │ │ └── business-delegate.urm.png │ ├── bytecode │ │ ├── README.md │ │ └── etc │ │ │ └── bytecode.urm.png │ ├── chain-of-responsibility │ │ ├── README.md │ │ └── etc │ │ │ └── chain-of-responsibility.urm.png │ ├── client-session │ │ ├── README.md │ │ └── etc │ │ │ └── session_state_pattern.png │ ├── collecting-parameter │ │ ├── README.md │ │ └── etc │ │ │ └── collecting-parameter.urm.png │ ├── command │ │ ├── README.md │ │ └── etc │ │ │ └── command.png │ ├── commander │ │ ├── README.md │ │ └── etc │ │ │ └── commander.urm.png │ ├── composite-entity │ │ ├── README.md │ │ └── etc │ │ │ └── composite_entity.urm.png │ ├── composite-view │ │ ├── README.md │ │ └── etc │ │ │ ├── composite_view.png │ │ │ └── images │ │ │ ├── noparam.png │ │ │ └── threeparams.png │ ├── composite │ │ ├── README.md │ │ └── etc │ │ │ └── composite.urm.png │ ├── context-object │ │ ├── README.md │ │ └── etc │ │ │ └── context-object.png │ ├── converter │ │ ├── README.md │ │ └── etc │ │ │ └── converter.png │ ├── crtp │ │ ├── README.md │ │ └── etc │ │ │ └── crtp.png │ ├── data-locality │ │ ├── README.md │ │ └── etc │ │ │ └── data-locality.urm.png │ ├── decorator │ │ ├── README.md │ │ └── etc │ │ │ └── decorator.urm.png │ ├── delegation │ │ ├── README.md │ │ └── etc │ │ │ └── delegation.png │ ├── dependency-injection │ │ ├── README.md │ │ └── etc │ │ │ └── dependency-injection.png │ ├── dirty-flag │ │ ├── README.md │ │ └── etc │ │ │ └── dirty-flag.png │ ├── double-buffer │ │ ├── README.md │ │ └── etc │ │ │ └── double-buffer.urm.png │ ├── embedded-value │ │ ├── README.md │ │ └── etc │ │ │ └── embedded-value.urm.png │ ├── event-aggregator │ │ ├── README.md │ │ └── etc │ │ │ └── classes.png │ ├── extension-objects │ │ ├── README.md │ │ └── etc │ │ │ └── extension_obj.png │ ├── facade │ │ ├── README.md │ │ └── etc │ │ │ └── facade.urm.png │ └── factory │ │ ├── README.md │ │ └── etc │ │ └── factory.urm.png ├── bn │ └── README.md ├── da │ └── README.md ├── de │ ├── README.md │ └── abstract-document │ │ ├── README.md │ │ └── etc │ │ └── abstract-document.png ├── el │ └── README.md ├── es │ ├── README.md │ ├── abstract-document │ │ ├── README.md │ │ └── etc │ │ │ └── abstract-document.png │ ├── abstract-factory │ │ ├── README.md │ │ └── etc │ │ │ └── abstract-factory.urm.png │ ├── active-object │ │ ├── README.md │ │ └── etc │ │ │ └── active-object.urm.png │ ├── acyclic-visitor │ │ ├── README.md │ │ └── etc │ │ │ └── acyclic-visitor.png │ ├── adapter │ │ ├── README.md │ │ └── etc │ │ │ └── adapter.urm.png │ ├── aggregator-microservices │ │ ├── README.md │ │ └── aggregator-service │ │ │ └── etc │ │ │ └── aggregator-service.png │ ├── ambassador │ │ ├── README.md │ │ └── etc │ │ │ └── ambassador.urm.png │ ├── api-gateway │ │ ├── README.md │ │ └── etc │ │ │ └── api-gateway.png │ ├── arrange-act-assert │ │ └── README.md │ ├── async-method-invocation │ │ ├── README.md │ │ └── etc │ │ │ └── async-method-invocation.png │ ├── balking │ │ ├── README.md │ │ └── etc │ │ │ └── balking.png │ ├── bridge │ │ ├── README.md │ │ └── etc │ │ │ └── bridge.urm.png │ ├── builder │ │ ├── README.md │ │ └── etc │ │ │ └── builder.urm.png │ ├── business-delegate │ │ ├── README.md │ │ └── etc │ │ │ └── business-delegate.urm.png │ ├── bytecode │ │ ├── README.md │ │ └── etc │ │ │ └── bytecode.urm.png │ ├── chain-of-responsibility │ │ ├── README.md │ │ └── etc │ │ │ └── chain-of-responsibility.urm.png │ ├── client-session │ │ ├── README.md │ │ └── etc │ │ │ └── session_state_pattern.png │ ├── collecting-parameter │ │ ├── README.md │ │ └── etc │ │ │ └── collecting-parameter.urm.png │ ├── command │ │ ├── README.md │ │ └── etc │ │ │ └── command.png │ ├── commander │ │ ├── README.md │ │ └── etc │ │ │ └── commander.urm.png │ ├── composite-entity │ │ ├── README.md │ │ └── etc │ │ │ └── composite_entity.urm.png │ ├── composite-view │ │ ├── README.md │ │ └── etc │ │ │ ├── composite_view.png │ │ │ └── images │ │ │ ├── noparam.png │ │ │ └── threeparams.png │ ├── composite │ │ ├── README.md │ │ └── etc │ │ │ └── composite.urm.png │ ├── context-object │ │ ├── README.md │ │ └── etc │ │ │ └── context-object.png │ ├── converter │ │ ├── README.md │ │ └── etc │ │ │ └── converter.png │ ├── crtp │ │ ├── README.md │ │ └── etc │ │ │ └── crtp.png │ ├── data-locality │ │ ├── README.md │ │ └── etc │ │ │ └── data-locality.urm.png │ ├── decorator │ │ ├── README.md │ │ └── etc │ │ │ └── decorator.urm.png │ ├── delegation │ │ ├── README.md │ │ └── etc │ │ │ └── delegation.png │ ├── dependency-injection │ │ ├── README.md │ │ └── etc │ │ │ └── dependency-injection.png │ ├── dirty-flag │ │ ├── README.md │ │ └── etc │ │ │ └── dirty-flag.png │ ├── double-buffer │ │ ├── README.md │ │ └── etc │ │ │ └── double-buffer.urm.png │ ├── embedded-value │ │ ├── README.md │ │ └── etc │ │ │ └── embedded-value.urm.png │ ├── event-aggregator │ │ ├── README.md │ │ └── etc │ │ │ └── classes.png │ ├── extension-objects │ │ ├── README.md │ │ └── etc │ │ │ └── extension_obj.png │ ├── facade │ │ ├── README.md │ │ └── etc │ │ │ └── facade.urm.png │ ├── factory-kit │ │ ├── README.md │ │ └── etc │ │ │ └── factory-kit.png │ ├── factory-method │ │ ├── README.md │ │ └── etc │ │ │ └── factory-method.urm.png │ ├── factory │ │ ├── README.md │ │ └── etc │ │ │ └── factory.urm.png │ ├── feature-toggle │ │ ├── README.md │ │ └── etc │ │ │ └── feature-toggle.png │ ├── flux │ │ ├── README.md │ │ └── etc │ │ │ └── flux.png │ ├── flyweight │ │ ├── README.md │ │ └── etc │ │ │ └── flyweight.urm.png │ ├── front-controller │ │ ├── README.md │ │ └── etc │ │ │ └── front-controller.png │ ├── game-loop │ │ ├── README.md │ │ └── etc │ │ │ └── game-loop.urm.png │ ├── gateway │ │ ├── README.md │ │ └── etc │ │ │ └── gateway.urm.png │ ├── health-check │ │ ├── README.md │ │ └── etc │ │ │ └── health-check.png │ ├── identity-map │ │ ├── README.md │ │ └── etc │ │ │ └── IdentityMap.png │ ├── intercepting-filter │ │ ├── README.md │ │ └── etc │ │ │ └── intercepting-filter.png │ ├── interpreter │ │ ├── README.md │ │ └── etc │ │ │ └── interpreter_1.png │ ├── iterator │ │ ├── README.md │ │ └── etc │ │ │ └── iterator_1.png │ ├── layers │ │ ├── README.md │ │ └── etc │ │ │ └── layers.png │ ├── lazy-loading │ │ ├── README.md │ │ └── etc │ │ │ └── lazy-loading.png │ ├── leader-election │ │ ├── README.md │ │ └── etc │ │ │ └── leader-election.urm.png │ ├── map-reduce │ │ └── README.md │ ├── marker │ │ ├── README.md │ │ └── etc │ │ │ └── MarkerDiagram.png │ ├── mediator │ │ ├── README.md │ │ └── etc │ │ │ └── mediator_1.png │ ├── memento │ │ ├── README.md │ │ └── etc │ │ │ └── memento.png │ ├── module │ │ ├── README.md │ │ └── etc │ │ │ └── module.png │ ├── monostate │ │ ├── README.md │ │ └── etc │ │ │ └── monostate.png │ ├── multiton │ │ ├── README.md │ │ └── etc │ │ │ └── multiton.png │ ├── null-object │ │ ├── README.md │ │ └── etc │ │ │ └── null-object.png │ ├── object-mother │ │ ├── README.md │ │ └── etc │ │ │ └── object-mother.png │ ├── object-pool │ │ ├── README.md │ │ └── etc │ │ │ └── object-pool.png │ ├── observer │ │ ├── README.md │ │ └── etc │ │ │ └── observer.png │ ├── page-controller │ │ ├── README.md │ │ └── etc │ │ │ └── page-controller.urm.png │ ├── page-object │ │ ├── README.md │ │ └── etc │ │ │ └── page-object.png │ ├── parameter-object │ │ ├── README.md │ │ └── etc │ │ │ └── parameter-object.png │ ├── partial-response │ │ ├── README.md │ │ └── etc │ │ │ └── partial-response.urm.png │ ├── pipeline │ │ ├── README.md │ │ └── etc │ │ │ └── pipeline.urm.png │ ├── poison-pill │ │ ├── README.md │ │ └── etc │ │ │ └── poison-pill.png │ ├── presentation-model │ │ ├── README.md │ │ └── etc │ │ │ ├── presentation-model.urm.png │ │ │ └── result.png │ ├── priority-queue │ │ ├── README.md │ │ └── etc │ │ │ └── priority-queue.urm.png │ ├── property │ │ ├── README.md │ │ └── etc │ │ │ └── property.png │ ├── prototype │ │ ├── README.md │ │ └── etc │ │ │ └── prototype.urm.png │ ├── proxy │ │ ├── README.md │ │ └── etc │ │ │ └── proxy.urm.png │ ├── registry │ │ ├── README.md │ │ └── etc │ │ │ └── registry.png │ ├── retry │ │ ├── README.md │ │ └── etc │ │ │ └── retry.png │ ├── role-object │ │ ├── README.md │ │ └── etc │ │ │ └── role-object.urm.png │ ├── separated-interface │ │ ├── README.md │ │ └── etc │ │ │ └── class_diagram.png │ ├── servant │ │ ├── README.md │ │ └── etc │ │ │ └── servant-pattern.png │ ├── sharding │ │ ├── README.md │ │ └── etc │ │ │ └── sharding.urm.png │ ├── single-table-inheritance │ │ ├── README.md │ │ └── etc │ │ │ └── single-table-inheritance.urm.png │ ├── singleton │ │ ├── README.md │ │ └── etc │ │ │ └── singleton.urm.png │ ├── spatial-partition │ │ ├── README.md │ │ └── etc │ │ │ └── spatial-partition.urm.png │ ├── special-case │ │ ├── README.md │ │ └── etc │ │ │ └── special_case_urm.png │ ├── specification │ │ ├── README.md │ │ └── etc │ │ │ └── specification.png │ ├── state │ │ ├── README.md │ │ └── etc │ │ │ └── state_urm.png │ ├── step-builder │ │ ├── README.md │ │ └── etc │ │ │ └── step-builder.png │ ├── strangler │ │ ├── README.md │ │ └── etc │ │ │ └── strangler.png │ ├── strategy │ │ ├── README.md │ │ └── etc │ │ │ └── strategy_urm.png │ ├── subclass-sandbox │ │ ├── README.md │ │ └── etc │ │ │ └── subclass-sandbox.urm.png │ ├── table-module │ │ ├── README.md │ │ └── etc │ │ │ └── table-module.urm.png │ ├── template-method │ │ ├── README.md │ │ └── etc │ │ │ └── template_method_urm.png │ ├── throttling │ │ ├── README.md │ │ └── etc │ │ │ └── throttling_urm.png │ ├── trampoline │ │ ├── README.md │ │ └── etc │ │ │ └── trampoline.urm.png │ ├── transaction-script │ │ ├── README.md │ │ └── etc │ │ │ └── transaction-script.png │ ├── twin │ │ ├── README.md │ │ └── etc │ │ │ └── twin.png │ ├── typeobjectpattern │ │ ├── README.md │ │ └── etc │ │ │ └── typeobjectpattern.urm.png │ ├── update-method │ │ ├── README.md │ │ └── etc │ │ │ └── update-method.urm.png │ ├── value-object │ │ ├── README.md │ │ └── etc │ │ │ └── value-object.png │ └── visitor │ │ ├── README.md │ │ └── etc │ │ ├── visitor.png │ │ └── visitor_1.png ├── fa │ ├── abstract-document │ │ ├── README.md │ │ └── etc │ │ │ └── abstract-document.png │ ├── active-object │ │ ├── README.md │ │ └── etc │ │ │ ├── active-object-sequence-diagram.png │ │ │ ├── active-object.urm.png │ │ │ └── active-object.urm.puml │ └── factory │ │ ├── README.md │ │ └── etc │ │ └── factory-sequence-diagram.png ├── fr │ ├── README.md │ ├── abstract-document │ │ └── README.md │ ├── abstract-factory │ │ └── README.md │ ├── active-object │ │ └── README.md │ ├── acyclic-visitore │ │ └── README.md │ ├── adapter │ │ └── README.md │ ├── aggregator-microservices │ │ └── README.md │ ├── ambassador │ │ └── README.md │ ├── anti-corruption-layer │ │ └── README.md │ ├── api-gateway │ │ └── README.md │ ├── arrange-act-assert │ │ └── README.md │ ├── async-method-invocation │ │ └── README.md │ ├── balking │ │ └── README.md │ ├── bridge │ │ └── README.md │ ├── builder │ │ └── README.md │ └── business-delegate │ │ └── README.md ├── hi │ ├── README.md │ ├── abstract-document │ │ └── README.md │ ├── abstract-factory │ │ └── README.md │ ├── active-object │ │ └── README.md │ ├── acyclic-visitor │ │ └── README.md │ ├── adapter │ │ └── README.md │ ├── aggregator-microservices │ │ └── README.md │ ├── ambassador │ │ └── README.md │ ├── api-gateway │ │ └── README.md │ ├── arrange-act-assert │ │ └── README.md │ ├── async-method-invocation │ │ └── README.md │ ├── balking │ │ └── README.md │ ├── bridge │ │ └── README.md │ ├── builder │ │ └── README.md │ ├── business-delegate │ │ └── README.md │ ├── bytecode │ │ └── README.md │ ├── caching │ │ └── README.md │ ├── callback │ │ └── README.md │ ├── chain-of-responsibility │ │ └── README.md │ ├── circuit-breaker │ │ └── README.md │ ├── client-session │ │ └── README.md │ ├── collecting-parameter │ │ └── README.md │ ├── collection-pipeline │ │ └── README.md │ ├── combinator │ │ └── README.md │ ├── command │ │ └── README.md │ ├── factory-method │ │ └── README.md │ └── module │ │ └── README.md ├── id │ ├── README.md │ └── decorator │ │ ├── README.md │ │ └── etc │ │ └── decorator.urm.png ├── it │ ├── README.md │ ├── abstract-document │ │ └── README.md │ ├── abstract-factory │ │ └── README.md │ ├── active-object │ │ └── README.md │ ├── acyclic-visitor │ │ └── README.md │ ├── adapter │ │ └── README.md │ ├── iterator │ │ └── README.md │ └── observer │ │ └── README.md ├── ja │ ├── README.md │ └── decorator │ │ ├── README.md │ │ └── etc │ │ └── decorator.urm.png ├── ko │ ├── README.md │ ├── adapter │ │ ├── README.md │ │ └── etc │ │ │ └── adapter.urm.png │ ├── builder │ │ ├── README.md │ │ └── etc │ │ │ └── builder.urm.png │ ├── callback │ │ ├── README.md │ │ └── etc │ │ │ └── callback.png │ ├── decorater │ │ ├── README.md │ │ └── etc │ │ │ └── decorator.urm.png │ ├── event-driven-architecture │ │ ├── README.md │ │ └── etc │ │ │ └── eda.png │ ├── event-sourcing │ │ ├── README.md │ │ └── etc │ │ │ └── event-sourcing.png │ ├── facade │ │ ├── README.md │ │ └── etc │ │ │ └── facade.urm.png │ ├── factory-method │ │ ├── README.md │ │ └── etc │ │ │ └── factory-method.urm.png │ ├── factory │ │ ├── README.md │ │ └── etc │ │ │ └── factory.urm.png │ ├── iterator │ │ ├── README.md │ │ └── etc │ │ │ └── iterator_1.png │ ├── observer │ │ ├── README.md │ │ └── etc │ │ │ └── observer.png │ ├── prototype │ │ ├── README.md │ │ └── etc │ │ │ └── prototype.urm.png │ ├── proxy │ │ ├── README.md │ │ └── etc │ │ │ └── proxy.urm.png │ ├── singleton │ │ ├── README.md │ │ └── etc │ │ │ └── singleton.urm.png │ ├── strategy │ │ ├── README.md │ │ └── etc │ │ │ └── strategy_urm.png │ ├── template-method │ │ ├── README.md │ │ └── etc │ │ │ └── template_method_urm.png │ └── visitor │ │ ├── README.md │ │ └── etc │ │ └── visitor_1.png ├── mr │ └── README.md ├── ne │ └── README.md ├── pt │ ├── README.md │ ├── abstract-factory │ │ └── README.md │ ├── adapter │ │ └── README.md │ ├── builder │ │ └── README.md │ ├── caching │ │ └── README.md │ ├── chain-of-responsability │ │ └── README.md │ ├── facade │ │ └── README.md │ ├── factory │ │ └── README.md │ ├── proxy │ │ └── README.md │ └── singleton │ │ └── README.md ├── ru │ ├── README.md │ └── abstract-factory │ │ └── README.md ├── si │ └── README.md ├── tr │ ├── README.md │ └── singleton │ │ ├── README.md │ │ └── etc │ │ └── singleton.urm.png ├── ur │ ├── README.md │ ├── abstract-document │ │ └── README.md │ ├── abstract-factory │ │ └── README.md │ ├── active-object │ │ └── README.md │ └── acyclic-visitor │ │ └── README.md ├── vi │ ├── README.md │ ├── abstract-document │ │ └── README.md │ ├── abstract-factory │ │ └── README.md │ ├── active-object │ │ └── README.md │ ├── acyclic-visitor │ │ └── README.md │ ├── adapter │ │ └── README.md │ ├── aggregator-microservices │ │ └── README.md │ ├── builder │ │ └── README.md │ └── game-loop │ │ └── README.md └── zh │ ├── README.md │ ├── abstract-document │ ├── README.md │ └── etc │ │ └── abstract-document.png │ ├── abstract-factory │ ├── README.md │ └── etc │ │ └── abstract-factory.urm.png │ ├── active-object │ ├── README.md │ └── etc │ │ └── active-object.urm.png │ ├── acyclic-visitor │ ├── README.md │ └── etc │ │ └── acyclic-visitor.png │ ├── adapter │ ├── README.md │ └── etc │ │ └── adapter.urm.png │ ├── aggregator-microservices │ ├── README.md │ └── etc │ │ └── aggregator-service.png │ ├── ambassador │ ├── README.md │ └── etc │ │ └── ambassador.urm.png │ ├── api-gateway │ ├── README.md │ └── etc │ │ └── api-gateway.png │ ├── arrange-act-assert │ └── README.md │ ├── async-method-invocation │ ├── README.md │ └── etc │ │ └── async-method-invocation.png │ ├── balking │ ├── README.md │ └── etc │ │ └── balking.png │ ├── bridge │ ├── README.md │ └── etc │ │ └── bridge.urm.png │ ├── builder │ ├── README.md │ └── etc │ │ └── builder.urm.png │ ├── business-delegate │ ├── README.md │ └── etc │ │ └── business-delegate.urm.png │ ├── bytecode │ ├── README.md │ └── etc │ │ └── bytecode.urm.png │ ├── caching │ ├── README.md │ └── etc │ │ └── caching.png │ ├── callback │ ├── README.md │ └── etc │ │ └── callback.png │ ├── chain │ ├── README.md │ └── etc │ │ └── chain-of-responsibility.urm.png │ ├── circuit-breaker │ ├── README.md │ └── etc │ │ ├── ServiceDiagram.png │ │ ├── StateDiagram.png │ │ └── circuit-breaker.urm.png │ ├── cloud-static-content-hosting │ ├── README.md │ └── etc │ │ └── static-content-hosting.png │ ├── collection-pipeline │ ├── README.md │ └── etc │ │ └── collection-pipeline.png │ ├── combinator │ ├── README.md │ └── etc │ │ └── combinator.urm.png │ ├── command │ ├── README.md │ └── etc │ │ └── command.png │ ├── commander │ ├── README.md │ └── etc │ │ └── commander.urm.png │ ├── composite-entity │ ├── README.md │ └── etc │ │ └── composite_entity.urm.png │ ├── composite │ ├── README.md │ └── etc │ │ └── composite.urm.png │ ├── converter │ ├── README.md │ └── etc │ │ └── converter.png │ ├── crtp │ ├── README.md │ └── etc │ │ └── crtp.png │ ├── dao │ ├── README.md │ └── etc │ │ └── dao.png │ ├── data-bus │ ├── README.md │ └── etc │ │ └── data-bus.urm.png │ ├── data-mapper │ ├── README.md │ └── etc │ │ └── data-mapper.png │ ├── data-transfer-object │ ├── README.md │ └── etc │ │ └── data-transfer-object.urm.png │ ├── decorator │ ├── README.md │ └── etc │ │ └── decorator.urm.png │ ├── delegation │ ├── README.md │ └── etc │ │ └── delegation.png │ ├── dependency-injection │ ├── README.md │ └── etc │ │ └── dependency-injection.png │ ├── dirty-flag │ ├── README.md │ └── etc │ │ └── dirty-flag.png │ ├── double-checked-locking │ ├── README.md │ └── etc │ │ └── double_checked_locking_1.png │ ├── facade │ ├── README.md │ └── etc │ │ └── facade.urm.png │ ├── factory-kit │ ├── README.md │ └── etc │ │ └── factory-kit.png │ ├── factory-method │ ├── README.md │ └── etc │ │ └── factory-method.urm.png │ ├── factory │ ├── README.md │ └── etc │ │ └── factory.urm.png │ ├── interpreter │ ├── README.md │ └── etc │ │ └── interpreter_1.png │ ├── iterator │ ├── README.md │ └── etc │ │ └── iterator_1.png │ ├── monitor │ ├── README.md │ └── etc │ │ └── monitor.urm.png │ ├── observer │ ├── README.md │ └── etc │ │ └── observer.png │ ├── private-class-data │ ├── README.md │ └── etc │ │ └── private-class-data.png │ ├── producer-consumer │ ├── README.md │ └── etc │ │ └── producer-consumer.png │ ├── proxy │ ├── README.md │ └── etc │ │ └── proxy.urm.png │ ├── servant │ ├── README.md │ └── etc │ │ └── servant-pattern.png │ ├── sharding │ ├── README.md │ └── etc │ │ └── sharding.urm.png │ ├── singleton │ ├── README.md │ └── etc │ │ └── singleton.urm.png │ ├── state │ ├── README.md │ └── etc │ │ └── state_urm.png │ ├── step-builder │ ├── README.md │ └── etc │ │ └── step-builder.png │ ├── strategy │ ├── README.md │ └── etc │ │ └── strategy_urm.png │ ├── table-module │ ├── README.md │ └── etc │ │ └── table-module.urm.png │ ├── template-method │ ├── README.md │ └── etc │ │ └── template_method_urm.png │ ├── trampoline │ ├── README.md │ └── etc │ │ └── trampoline_urm.png │ ├── unit-of-work │ ├── README.md │ └── etc │ │ └── unit-of-work.urm.png │ ├── update-method │ ├── README.md │ └── etc │ │ └── update-method.urm.png │ ├── value-object │ ├── README.md │ └── etc │ │ └── value-object.png │ ├── version-number │ ├── README.md │ └── etc │ │ └── version-number.urm.png │ └── visitor │ ├── README.md │ └── etc │ └── visitor_1.png ├── lockable-object ├── README.md ├── etc │ ├── lockable-object-sequence-diagram.png │ ├── lockable-object.urm.png │ └── lockable-object.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── lockableobject │ │ ├── App.java │ │ ├── Lockable.java │ │ ├── LockingException.java │ │ ├── SwordOfAragorn.java │ │ └── domain │ │ ├── Creature.java │ │ ├── CreatureStats.java │ │ ├── CreatureType.java │ │ ├── Elf.java │ │ ├── Feind.java │ │ ├── Human.java │ │ └── Orc.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── lockableobject │ ├── AppTest.java │ ├── CreatureTest.java │ ├── ExceptionsTest.java │ ├── FeindTest.java │ ├── SubCreaturesTests.java │ └── TheSwordOfAragornTest.java ├── lombok.config ├── map-reduce ├── README.md ├── etc │ ├── map-reduce.png │ ├── map-reduce.urm.puml │ └── mapreduce-flowchart.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ ├── Main.java │ │ ├── MapReduce.java │ │ ├── Mapper.java │ │ ├── Reducer.java │ │ └── Shuffler.java │ └── test │ └── java │ └── com │ └── iluwatar │ ├── MapReduceTest.java │ ├── MapperTest.java │ ├── ReducerTest.java │ └── ShufflerTest.java ├── marker-interface ├── .gitignore ├── README.md ├── etc │ ├── MarkerDiagram.png │ ├── MarkerDiagram.ucls │ ├── marker-interface-flowchart.png │ ├── marker-interface.urm.puml │ └── marker.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ ├── App.java │ │ ├── Guard.java │ │ ├── Permission.java │ │ └── Thief.java │ └── test │ └── java │ ├── AppTest.java │ ├── GuardTest.java │ └── ThiefTest.java ├── master-worker ├── README.md ├── etc │ ├── master-worker-pattern.urm.png │ ├── master-worker-pattern.urm.puml │ ├── master-worker-sequence-diagram.png │ └── master-worker.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── masterworker │ │ ├── App.java │ │ ├── ArrayInput.java │ │ ├── ArrayResult.java │ │ ├── ArrayUtilityMethods.java │ │ ├── Input.java │ │ ├── Result.java │ │ └── system │ │ ├── ArrayTransposeMasterWorker.java │ │ ├── MasterWorker.java │ │ ├── systemmaster │ │ ├── ArrayTransposeMaster.java │ │ └── Master.java │ │ └── systemworkers │ │ ├── ArrayTransposeWorker.java │ │ └── Worker.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── masterworker │ ├── ArrayInputTest.java │ ├── ArrayUtilityMethodsTest.java │ └── system │ ├── ArrayTransposeMasterWorkerTest.java │ └── systemworkers │ └── ArrayTransposeWorkerTest.java ├── mediator ├── README.md ├── etc │ ├── mediator-sequence-diagram.png │ ├── mediator.png │ ├── mediator.ucls │ ├── mediator.urm.puml │ └── mediator_1.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── mediator │ │ ├── Action.java │ │ ├── App.java │ │ ├── Hobbit.java │ │ ├── Hunter.java │ │ ├── Party.java │ │ ├── PartyImpl.java │ │ ├── PartyMember.java │ │ ├── PartyMemberBase.java │ │ ├── Rogue.java │ │ └── Wizard.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── mediator │ ├── AppTest.java │ ├── PartyImplTest.java │ └── PartyMemberTest.java ├── memento ├── README.md ├── etc │ ├── memento-sequence-diagram.png │ ├── memento.png │ ├── memento.ucls │ └── memento.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── memento │ │ ├── App.java │ │ ├── Star.java │ │ ├── StarMemento.java │ │ └── StarType.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── memento │ ├── AppTest.java │ └── StarTest.java ├── metadata-mapping ├── README.md ├── etc │ ├── metadata-mapping-flowchart.png │ ├── metadata-mapping.urm.puml │ ├── metamapping.png │ └── metamapping.puml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── iluwatar │ │ │ └── metamapping │ │ │ ├── App.java │ │ │ ├── model │ │ │ └── User.java │ │ │ ├── service │ │ │ └── UserService.java │ │ │ └── utils │ │ │ ├── DatabaseUtil.java │ │ │ └── HibernateUtil.java │ └── resources │ │ ├── com │ │ └── iluwatar │ │ │ └── metamapping │ │ │ └── model │ │ │ └── User.hbm.xml │ │ ├── hibernate.cfg.xml │ │ └── logback.xml │ └── test │ └── java │ └── com │ └── iluwatar │ └── metamapping │ └── AppTest.java ├── microservices-aggregrator ├── README.md ├── aggregator-service │ ├── etc │ │ ├── aggregator-service.png │ │ └── aggregator-service.urm.puml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── iluwatar │ │ │ │ └── aggregator │ │ │ │ └── microservices │ │ │ │ ├── Aggregator.java │ │ │ │ ├── App.java │ │ │ │ ├── Product.java │ │ │ │ ├── ProductInformationClient.java │ │ │ │ ├── ProductInformationClientImpl.java │ │ │ │ ├── ProductInventoryClient.java │ │ │ │ └── ProductInventoryClientImpl.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── iluwatar │ │ └── aggregator │ │ └── microservices │ │ └── AggregatorTest.java ├── etc │ ├── aggregator-microservices.urm.puml │ ├── microservices-aggregator-architecture-diagram.png │ └── microservices-aggregrator.urm.puml ├── information-microservice │ ├── etc │ │ └── information-microservice.urm.puml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── iluwatar │ │ │ │ └── information │ │ │ │ └── microservice │ │ │ │ ├── InformationApplication.java │ │ │ │ └── InformationController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── iluwatar │ │ └── information │ │ └── microservice │ │ └── InformationControllerTest.java ├── inventory-microservice │ ├── etc │ │ └── inventory-microservice.urm.puml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── iluwatar │ │ │ │ └── inventory │ │ │ │ └── microservice │ │ │ │ ├── InventoryApplication.java │ │ │ │ └── InventoryController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── iluwatar │ │ └── inventory │ │ └── microservice │ │ └── InventoryControllerTest.java └── pom.xml ├── microservices-api-gateway ├── README.md ├── api-gateway-service │ ├── etc │ │ └── api-gateway-service.urm.puml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── iluwatar │ │ │ │ └── api │ │ │ │ └── gateway │ │ │ │ ├── ApiGateway.java │ │ │ │ ├── App.java │ │ │ │ ├── DesktopProduct.java │ │ │ │ ├── ImageClient.java │ │ │ │ ├── ImageClientImpl.java │ │ │ │ ├── MobileProduct.java │ │ │ │ ├── PriceClient.java │ │ │ │ └── PriceClientImpl.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── iluwatar │ │ └── api │ │ └── gateway │ │ └── ApiGatewayTest.java ├── etc │ ├── api-gateway.png │ ├── api-gateway.ucls │ ├── api-gateway.urm.puml │ ├── microservices-api-gateway-sequence-diagram.png │ └── microservices-api-gateway.urm.puml ├── image-microservice │ ├── etc │ │ ├── image-microservice.png │ │ ├── image-microservice.ucls │ │ └── image-microservice.urm.puml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── iluwatar │ │ │ │ └── image │ │ │ │ └── microservice │ │ │ │ ├── ImageApplication.java │ │ │ │ └── ImageController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── iluwatar │ │ └── image │ │ └── microservice │ │ └── ImageControllerTest.java ├── pom.xml └── price-microservice │ ├── etc │ ├── price-microservice.png │ ├── price-microservice.ucls │ └── price-microservice.urm.puml │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── iluwatar │ │ │ └── price │ │ │ └── microservice │ │ │ ├── PriceApplication.java │ │ │ ├── PriceController.java │ │ │ ├── PriceService.java │ │ │ └── PriceServiceImpl.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── iluwatar │ └── price │ └── microservice │ ├── PriceControllerTest.java │ └── PriceServiceTest.java ├── microservices-client-side-ui-composition ├── README.md ├── etc │ ├── client-side-ui-composition.urm.puml │ ├── microservices-client-side-ui-composition-sequence-diagram.png │ └── microservices-client-side-ui-composition.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── clientsideuicomposition │ │ ├── ApiGateway.java │ │ ├── CartFrontend.java │ │ ├── ClientSideIntegrator.java │ │ ├── FrontendComponent.java │ │ └── ProductFrontend.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── clientsideuicomposition │ └── ClientSideCompositionTest.java ├── microservices-distributed-tracing ├── README.md ├── etc │ ├── microservices-distributed-tracing-sequence-diagram.png │ ├── microservices-distributed-tracing.png │ ├── microservices-distributed-tracing.puml │ └── microservices-distributed-tracing.urm.puml ├── order-microservice │ ├── etc │ │ ├── order-microservice.png │ │ ├── order-microservice.puml │ │ └── order-microservice.urm.puml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── iluwatar │ │ │ │ └── order │ │ │ │ └── microservice │ │ │ │ ├── Main.java │ │ │ │ ├── OrderController.java │ │ │ │ └── OrderService.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── iluwatar │ │ └── order │ │ └── microservice │ │ ├── MainTest.java │ │ ├── OrderControllerTest.java │ │ └── OrderServiceTest.java ├── payment-microservice │ ├── etc │ │ ├── payment-microservice.png │ │ ├── payment-microservice.puml │ │ └── payment-microservice.urm.puml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── iluwatar │ │ │ │ └── payment │ │ │ │ └── microservice │ │ │ │ ├── Main.java │ │ │ │ └── PaymentController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── iluwatar │ │ └── payment │ │ └── microservice │ │ ├── MainTest.java │ │ └── ProductControllerTest.java ├── pom.xml └── product-microservice │ ├── etc │ ├── product-microservice.png │ ├── product-microservice.puml │ └── product-microservice.urm.puml │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── iluwatar │ │ │ └── product │ │ │ └── microservice │ │ │ └── microservice │ │ │ ├── Main.java │ │ │ └── ProductController.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── iluwatar │ └── product │ └── microservice │ ├── MainTest.java │ └── ProductControllerTest.java ├── microservices-idempotent-consumer ├── README.md ├── etc │ ├── microservices-idempotent-consumer-flowchart.png │ └── microservices-idempotent-consumer.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── idempotentconsumer │ │ ├── App.java │ │ ├── InvalidNextStateException.java │ │ ├── Request.java │ │ ├── RequestNotFoundException.java │ │ ├── RequestRepository.java │ │ ├── RequestService.java │ │ └── RequestStateMachine.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── idempotentconsumer │ ├── AppTest.java │ ├── RequestServiceTests.java │ └── RequestStateMachineTests.java ├── microservices-log-aggregation ├── README.md ├── etc │ ├── log-aggregation.png │ ├── log-aggregation.puml │ ├── log-aggregation.urm.puml │ ├── microservices-log-aggregation-flowchart.png │ └── microservices-log-aggregation.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── logaggregation │ │ ├── App.java │ │ ├── CentralLogStore.java │ │ ├── LogAggregator.java │ │ ├── LogEntry.java │ │ ├── LogLevel.java │ │ └── LogProducer.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── logaggregation │ └── LogAggregatorTest.java ├── model-view-controller ├── README.md ├── etc │ ├── model-view-controller.png │ ├── model-view-controller.ucls │ ├── model-view-controller.urm.puml │ └── mvc-architecture-diagram.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── model │ │ └── view │ │ └── controller │ │ ├── App.java │ │ ├── Fatigue.java │ │ ├── GiantController.java │ │ ├── GiantModel.java │ │ ├── GiantView.java │ │ ├── Health.java │ │ └── Nourishment.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── model │ └── view │ └── controller │ ├── AppTest.java │ ├── GiantControllerTest.java │ ├── GiantModelTest.java │ └── GiantViewTest.java ├── model-view-intent ├── README.md ├── etc │ ├── model-view-intent.png │ ├── model-view-intent.urm.puml │ └── mvi-architecture-diagram.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── model │ │ └── view │ │ └── intent │ │ ├── App.java │ │ ├── CalculatorModel.java │ │ ├── CalculatorView.java │ │ ├── CalculatorViewModel.java │ │ ├── actions │ │ ├── AdditionCalculatorAction.java │ │ ├── CalculatorAction.java │ │ ├── DivisionCalculatorAction.java │ │ ├── MultiplicationCalculatorAction.java │ │ ├── SetVariableCalculatorAction.java │ │ ├── SubtractionCalculatorAction.java │ │ └── package-info.java │ │ └── package-info.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── model │ └── view │ └── intent │ ├── AppTest.java │ └── CalculatorViewModelTest.java ├── model-view-presenter ├── README.md ├── etc │ ├── data │ │ └── test.txt │ ├── model-view-presenter.png │ ├── model-view-presenter.ucls │ ├── model-view-presenter.urm.puml │ ├── model-view-presenter_1.png │ └── mvp-architecture-diagram.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── model │ │ └── view │ │ └── presenter │ │ ├── App.java │ │ ├── FileLoader.java │ │ ├── FileSelectorJframe.java │ │ ├── FileSelectorPresenter.java │ │ ├── FileSelectorStub.java │ │ └── FileSelectorView.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── model │ └── view │ └── presenter │ ├── AppTest.java │ ├── FileLoaderTest.java │ ├── FileSelectorJframeTest.java │ └── FileSelectorPresenterTest.java ├── model-view-viewmodel ├── README.md ├── etc │ ├── model-view-viewmodel.png │ ├── model-view-viewmodel.urm.puml │ └── mvvm-architecture-diagram.png ├── lombok.config ├── pom.xml └── src │ ├── main │ ├── assembly │ │ └── webapp.xml │ ├── java │ │ └── com │ │ │ └── iluwatar │ │ │ └── model │ │ │ └── view │ │ │ └── viewmodel │ │ │ ├── Book.java │ │ │ ├── BookService.java │ │ │ ├── BookServiceImpl.java │ │ │ └── BookViewModel.java │ └── webapp │ │ ├── META-INF │ │ └── MANIFEST.MF │ │ ├── WEB-INF │ │ └── web.xml │ │ └── index.zul │ └── test │ └── java │ └── com │ └── iluwatar │ └── model │ └── view │ └── viewmodel │ └── BookTest.java ├── monad ├── README.md ├── etc │ ├── monad-flowchart.png │ ├── monad.png │ ├── monad.ucls │ └── monad.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── monad │ │ ├── App.java │ │ ├── Sex.java │ │ ├── User.java │ │ └── Validator.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── monad │ ├── AppTest.java │ └── MonadTest.java ├── money ├── README.md ├── etc │ ├── money-flowchart.png │ ├── money-mind-map.png │ └── money.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ ├── App.java │ │ ├── CannotAddTwoCurrienciesException.java │ │ ├── CannotSubtractException.java │ │ └── Money.java │ └── test │ └── java │ └── com │ └── iluwater │ └── money │ └── MoneyTest.java ├── monitor ├── README.md ├── etc │ ├── monitor-sequence-diagram.png │ ├── monitor.urm.png │ └── monitor.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── monitor │ │ ├── Bank.java │ │ └── Main.java │ └── test │ ├── java │ └── com │ │ └── iluwatar │ │ └── monitor │ │ ├── BankTest.java │ │ └── MainTest.java │ └── resources │ └── logback.xml ├── monolithic-architecture ├── README.md ├── etc │ ├── Monolithic-Ecommerce.urm.puml │ ├── monolithic-architecture-flowchart.png │ ├── monolithic-architecture-mind-map.png │ ├── monolithic-architecture.urm.puml │ └── mvc-architecture-diagram.png ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── iluwatar │ │ │ └── monolithic │ │ │ ├── EcommerceApp.java │ │ │ ├── controller │ │ │ ├── OrderController.java │ │ │ ├── ProductController.java │ │ │ └── UserController.java │ │ │ ├── exceptions │ │ │ ├── InsufficientStockException.java │ │ │ ├── NonExistentProductException.java │ │ │ └── NonExistentUserException.java │ │ │ ├── model │ │ │ ├── Order.java │ │ │ ├── Product.java │ │ │ └── User.java │ │ │ └── repository │ │ │ ├── OrderRepository.java │ │ │ ├── ProductRepository.java │ │ │ └── UserRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── iluwatar │ └── monolithic │ └── MonolithicAppTest.java ├── monostate ├── README.md ├── etc │ ├── MonoState.ucls │ ├── monostate-flowchart.png │ ├── monostate.png │ └── monostate.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── monostate │ │ ├── App.java │ │ ├── LoadBalancer.java │ │ ├── Request.java │ │ └── Server.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── monostate │ ├── AppTest.java │ └── LoadBalancerTest.java ├── multiton ├── README.md ├── etc │ ├── multiton-flowchart.png │ ├── multiton.png │ ├── multiton.ucls │ └── multiton.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── multiton │ │ ├── App.java │ │ ├── Nazgul.java │ │ ├── NazgulEnum.java │ │ └── NazgulName.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── multiton │ ├── AppTest.java │ ├── NazgulEnumTest.java │ └── NazgulTest.java ├── mute-idiom ├── README.md ├── etc │ ├── mute-idiom-flowchart.png │ ├── mute-idiom.png │ ├── mute-idiom.ucls │ └── mute-idiom.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── mute │ │ ├── App.java │ │ ├── CheckedRunnable.java │ │ ├── Mute.java │ │ └── Resource.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── mute │ ├── AppTest.java │ └── MuteTest.java ├── mvnw ├── mvnw.cmd ├── naked-objects ├── README.md └── etc │ └── naked-objects-architecture-diagram.png ├── notification ├── README.md ├── etc │ ├── notification-sequence-diagram.png │ ├── notification.urm.png │ └── notification.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ ├── App.java │ │ ├── DataTransferObject.java │ │ ├── Notification.java │ │ ├── NotificationError.java │ │ ├── RegisterWorker.java │ │ ├── RegisterWorkerDto.java │ │ ├── RegisterWorkerForm.java │ │ ├── RegisterWorkerService.java │ │ └── ServerCommand.java │ └── test │ └── java │ └── com │ └── iluwatar │ ├── AppTest.java │ ├── RegisterWorkerFormTest.java │ └── RegisterWorkerTest.java ├── null-object ├── README.md ├── etc │ ├── null-object-sequence-diagram.png │ ├── null-object.png │ ├── null-object.ucls │ └── null-object.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── nullobject │ │ ├── App.java │ │ ├── Node.java │ │ ├── NodeImpl.java │ │ └── NullNode.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── nullobject │ ├── AppTest.java │ ├── NullNodeTest.java │ └── TreeTest.java ├── object-mother ├── README.md ├── etc │ ├── object-mother-flowchart.png │ ├── object-mother-mind-map.png │ ├── object-mother.png │ ├── object-mother.ucls │ └── object-mother.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── objectmother │ │ ├── King.java │ │ ├── Queen.java │ │ ├── Royalty.java │ │ └── RoyaltyObjectMother.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── objectmother │ └── test │ └── RoyaltyObjectMotherTest.java ├── object-pool ├── README.md ├── etc │ ├── object-pool-sequence-diagram.png │ ├── object-pool.png │ ├── object-pool.ucls │ └── object-pool.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── object │ │ └── pool │ │ ├── App.java │ │ ├── ObjectPool.java │ │ ├── Oliphaunt.java │ │ └── OliphauntPool.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── object │ └── pool │ ├── AppTest.java │ └── OliphauntPoolTest.java ├── observer ├── README.md ├── etc │ ├── observer-sequence-diagram.png │ ├── observer.png │ ├── observer.ucls │ ├── observer.urm.puml │ ├── observer_1.png │ └── observer_with_generics.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── observer │ │ ├── App.java │ │ ├── Hobbits.java │ │ ├── Orcs.java │ │ ├── Weather.java │ │ ├── WeatherObserver.java │ │ ├── WeatherType.java │ │ └── generic │ │ ├── GenHobbits.java │ │ ├── GenOrcs.java │ │ ├── GenWeather.java │ │ ├── Observable.java │ │ ├── Observer.java │ │ └── Race.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── observer │ ├── AppTest.java │ ├── HobbitsTest.java │ ├── OrcsTest.java │ ├── WeatherObserverTest.java │ ├── WeatherTest.java │ ├── generic │ ├── GHobbitsTest.java │ ├── GWeatherTest.java │ ├── ObserverTest.java │ └── OrcsTest.java │ └── utils │ └── InMemoryAppender.java ├── optimistic-offline-lock ├── README.md ├── etc │ ├── optimistic-offline-lock-sequence-diagram.png │ └── optimistic-offline-lock.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ ├── api │ │ └── UpdateService.java │ │ ├── exception │ │ └── ApplicationException.java │ │ ├── model │ │ └── Card.java │ │ ├── repository │ │ └── JpaRepository.java │ │ └── service │ │ └── CardUpdateService.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── OptimisticLockTest.java ├── page-controller ├── README.md ├── etc │ ├── page-controller-architecture-diagram.png │ ├── page-controller.urm.png │ └── page-controller.urm.puml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── iluwatar │ │ │ └── page │ │ │ └── controller │ │ │ ├── App.java │ │ │ ├── SignupController.java │ │ │ ├── SignupModel.java │ │ │ ├── SignupView.java │ │ │ ├── UserController.java │ │ │ ├── UserModel.java │ │ │ └── UserView.java │ └── resources │ │ ├── application.properties │ │ └── templates │ │ ├── signup.html │ │ └── user.html │ └── test │ └── java │ └── com │ └── iluwatar │ └── page │ └── controller │ ├── AppTest.java │ ├── SignupControllerTest.java │ ├── SignupModelTest.java │ ├── UserControllerTest.java │ └── UserModelTest.java ├── page-object ├── README.md ├── etc │ ├── page-object-flowchart.png │ ├── page-object-mind-map.png │ ├── page-object.png │ ├── page-object.ucls │ └── page-object.urm.puml ├── pom.xml ├── sample-application │ ├── etc │ │ ├── page-object.png │ │ ├── page-object.ucls │ │ └── sample-application.urm.puml │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── iluwatar │ │ │ └── pageobject │ │ │ └── App.java │ │ └── resources │ │ └── sample-ui │ │ ├── album-list.html │ │ ├── album-page.html │ │ ├── css │ │ ├── album-list.css │ │ └── style.css │ │ └── login.html ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── iluwatar │ │ │ │ └── pageobject │ │ │ │ └── App.java │ │ └── resources │ │ │ └── sample-ui │ │ │ ├── album-list.html │ │ │ ├── album-page.html │ │ │ ├── css │ │ │ ├── album-list.css │ │ │ └── style.css │ │ │ └── login.html │ └── test │ │ └── java │ │ └── com │ │ └── iluwatar │ │ └── pageobject │ │ ├── AlbumListPageTest.java │ │ ├── AlbumPageTest.java │ │ ├── LoginPageTest.java │ │ └── pages │ │ ├── AlbumListPage.java │ │ ├── AlbumPage.java │ │ ├── LoginPage.java │ │ └── Page.java └── test-automation │ ├── etc │ └── test-automation.urm.puml │ ├── pom.xml │ └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── pageobject │ │ ├── AlbumListPage.java │ │ ├── AlbumPage.java │ │ ├── LoginPage.java │ │ └── Page.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── pageobject │ ├── AlbumListPageTest.java │ ├── AlbumPageTest.java │ └── LoginPageTest.java ├── parameter-object ├── README.md ├── etc │ ├── parameter-object-flowchart.png │ ├── parameter-object-mind-map.png │ ├── parameter-object.png │ └── parameter-object.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── parameter │ │ └── object │ │ ├── App.java │ │ ├── ParameterObject.java │ │ ├── SearchService.java │ │ └── SortOrder.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── parameter │ └── object │ ├── AppTest.java │ ├── ParameterObjectTest.java │ └── SearchServiceTest.java ├── partial-response ├── README.md ├── etc │ ├── partial-response-sequence-diagram.png │ ├── partial-response.ucls │ ├── partial-response.urm.png │ └── partial-response.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── partialresponse │ │ ├── App.java │ │ ├── FieldJsonMapper.java │ │ ├── Video.java │ │ └── VideoResource.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── partialresponse │ ├── AppTest.java │ ├── FieldJsonMapperTest.java │ └── VideoResourceTest.java ├── pipeline ├── README.md ├── etc │ ├── pipeline-flowchart.png │ ├── pipeline.urm.png │ └── pipeline.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── pipeline │ │ ├── App.java │ │ ├── ConvertToCharArrayHandler.java │ │ ├── Handler.java │ │ ├── Pipeline.java │ │ ├── RemoveAlphabetsHandler.java │ │ └── RemoveDigitsHandler.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── pipeline │ ├── AppTest.java │ └── PipelineTest.java ├── poison-pill ├── README.md ├── etc │ ├── poison-pill-sequence-diagram.png │ ├── poison-pill.png │ ├── poison-pill.ucls │ └── poison-pill.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── poison │ │ └── pill │ │ ├── App.java │ │ ├── Consumer.java │ │ ├── Message.java │ │ ├── MessageQueue.java │ │ ├── MqPublishPoint.java │ │ ├── MqSubscribePoint.java │ │ ├── Producer.java │ │ ├── SimpleMessage.java │ │ └── SimpleMessageQueue.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── poison │ └── pill │ ├── AppTest.java │ ├── ConsumerTest.java │ ├── PoisonMessageTest.java │ ├── ProducerTest.java │ └── SimpleMessageTest.java ├── pom.xml ├── presentation-model ├── README.md ├── etc │ ├── presentation-model-architecture-diagram.png │ ├── presentation-model.urm.png │ ├── presentation-model.urm.puml │ └── presentation.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── presentationmodel │ │ ├── Album.java │ │ ├── App.java │ │ ├── DisplayedAlbums.java │ │ ├── PresentationModel.java │ │ └── View.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── presentationmodel │ ├── AlbumTest.java │ ├── AppTest.java │ ├── DisplayedAlbumsTest.java │ ├── PresentationTest.java │ └── ViewTest.java ├── private-class-data ├── README.md ├── etc │ ├── private-class-data-flowchart.png │ ├── private-class-data-mind-map.png │ ├── private-class-data.png │ ├── private-class-data.ucls │ └── private-class-data.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── privateclassdata │ │ ├── App.java │ │ ├── ImmutableStew.java │ │ ├── Stew.java │ │ └── StewData.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── privateclassdata │ ├── AppTest.java │ ├── ImmutableStewTest.java │ ├── StewTest.java │ └── utils │ └── InMemoryAppender.java ├── producer-consumer ├── README.md ├── etc │ ├── producer-consumer-sequence-diagram.png │ ├── producer-consumer.png │ ├── producer-consumer.ucls │ └── producer-consumer.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── producer │ │ └── consumer │ │ ├── App.java │ │ ├── Consumer.java │ │ ├── Item.java │ │ ├── ItemQueue.java │ │ └── Producer.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── producer │ └── consumer │ ├── AppTest.java │ ├── ConsumerTest.java │ └── ProducerTest.java ├── promise ├── README.md ├── etc │ ├── promise-sequence-diagram.png │ ├── promise.png │ ├── promise.ucls │ └── promise.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── promise │ │ ├── App.java │ │ ├── Promise.java │ │ ├── PromiseSupport.java │ │ └── Utility.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── promise │ ├── AppTest.java │ └── PromiseTest.java ├── property ├── README.md ├── etc │ ├── property-sequence-diagram.png │ ├── property.png │ ├── property.ucls │ └── property.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── property │ │ ├── App.java │ │ ├── Character.java │ │ ├── Prototype.java │ │ └── Stats.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── property │ ├── AppTest.java │ └── CharacterTest.java ├── prototype ├── README.md ├── etc │ ├── prototype-sequence-diagram.png │ ├── prototype.urm.png │ └── prototype.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── prototype │ │ ├── App.java │ │ ├── Beast.java │ │ ├── ElfBeast.java │ │ ├── ElfMage.java │ │ ├── ElfWarlord.java │ │ ├── HeroFactory.java │ │ ├── HeroFactoryImpl.java │ │ ├── Mage.java │ │ ├── OrcBeast.java │ │ ├── OrcMage.java │ │ ├── OrcWarlord.java │ │ ├── Prototype.java │ │ └── Warlord.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── prototype │ ├── AppTest.java │ └── PrototypeTest.java ├── proxy ├── README.md ├── etc │ ├── proxy-sequence-diagram.png │ ├── proxy.urm.png │ └── proxy.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── proxy │ │ ├── App.java │ │ ├── IvoryTower.java │ │ ├── Wizard.java │ │ ├── WizardTower.java │ │ └── WizardTowerProxy.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── proxy │ ├── AppTest.java │ ├── IvoryTowerTest.java │ ├── WizardTest.java │ ├── WizardTowerProxyTest.java │ └── utils │ └── InMemoryAppender.java ├── publish-subscribe ├── README.md ├── etc │ ├── pub-sub.png │ └── publish-subscribe-sequence-diagram.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── publish │ │ └── subscribe │ │ ├── App.java │ │ ├── model │ │ ├── Message.java │ │ └── Topic.java │ │ ├── publisher │ │ ├── Publisher.java │ │ └── PublisherImpl.java │ │ └── subscriber │ │ ├── CustomerSupportSubscriber.java │ │ ├── DelayedWeatherSubscriber.java │ │ ├── Subscriber.java │ │ └── WeatherSubscriber.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── publish │ └── subscribe │ ├── AppTest.java │ ├── LoggerExtension.java │ ├── model │ ├── MessageTest.java │ └── TopicTest.java │ ├── publisher │ └── PublisherTest.java │ └── subscriber │ └── SubscriberTest.java ├── queue-based-load-leveling ├── README.md ├── etc │ ├── queue-based-load-leveling-flowchart.png │ ├── queue-based-load-leveling.urm.puml │ ├── queue-load-leveling.gif │ ├── queue-load-leveling.ucls │ └── queue-load-leveling.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── queue │ │ └── load │ │ └── leveling │ │ ├── App.java │ │ ├── Message.java │ │ ├── MessageQueue.java │ │ ├── ServiceExecutor.java │ │ ├── Task.java │ │ └── TaskGenerator.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── queue │ └── load │ └── leveling │ ├── AppTest.java │ ├── MessageQueueTest.java │ ├── MessageTest.java │ └── TaskGenSrvExeTest.java ├── reactor ├── README.md ├── etc │ ├── reactor-sequence-diagram.png │ ├── reactor.png │ ├── reactor.ucls │ └── reactor.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── reactor │ │ ├── app │ │ ├── App.java │ │ ├── AppClient.java │ │ └── LoggingHandler.java │ │ └── framework │ │ ├── AbstractNioChannel.java │ │ ├── ChannelHandler.java │ │ ├── Dispatcher.java │ │ ├── NioDatagramChannel.java │ │ ├── NioReactor.java │ │ ├── NioServerSocketChannel.java │ │ ├── SameThreadDispatcher.java │ │ └── ThreadPoolDispatcher.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── reactor │ └── app │ └── ReactorTest.java ├── registry ├── README.md ├── etc │ ├── registry-flowchart.png │ ├── registry.png │ └── registry.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── registry │ │ ├── App.java │ │ ├── Customer.java │ │ └── CustomerRegistry.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── registry │ └── CustomerRegistryTest.java ├── repository ├── README.md ├── etc │ ├── repository-sequence-diagram.png │ ├── repository.png │ ├── repository.ucls │ └── repository.urm.puml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── iluwatar │ │ │ └── repository │ │ │ ├── App.java │ │ │ ├── AppConfig.java │ │ │ ├── Person.java │ │ │ ├── PersonRepository.java │ │ │ └── PersonSpecifications.java │ └── resources │ │ ├── META-INF │ │ └── persistence.xml │ │ ├── applicationContext.xml │ │ └── logback.xml │ └── test │ └── java │ └── com │ └── iluwatar │ └── repository │ ├── AnnotationBasedRepositoryTest.java │ ├── AppConfigTest.java │ ├── AppTest.java │ └── RepositoryTest.java ├── resource-acquisition-is-initialization ├── README.md ├── etc │ ├── raii-sequence-diagram.png │ ├── resource-acquisition-is-initialization.png │ ├── resource-acquisition-is-initialization.ucls │ └── resource-acquisition-is-initialization.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── resource │ │ └── acquisition │ │ └── is │ │ └── initialization │ │ ├── App.java │ │ ├── SlidingDoor.java │ │ └── TreasureChest.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── resource │ └── acquisition │ └── is │ └── initialization │ ├── AppTest.java │ └── ClosableTest.java ├── retry ├── README.md ├── etc │ ├── retry-flowchart.png │ ├── retry.png │ └── retry.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── retry │ │ ├── App.java │ │ ├── BusinessException.java │ │ ├── BusinessOperation.java │ │ ├── CustomerNotFoundException.java │ │ ├── DatabaseNotAvailableException.java │ │ ├── FindCustomer.java │ │ ├── Retry.java │ │ └── RetryExponentialBackoff.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── retry │ ├── FindCustomerTest.java │ ├── RetryExponentialBackoffTest.java │ └── RetryTest.java ├── role-object ├── README.md ├── etc │ ├── role-object-sequence-diagram.png │ ├── role-object.urm.png │ └── role-object.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── roleobject │ │ ├── ApplicationRoleObject.java │ │ ├── BorrowerRole.java │ │ ├── Customer.java │ │ ├── CustomerCore.java │ │ ├── CustomerRole.java │ │ ├── InvestorRole.java │ │ └── Role.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── roleobject │ ├── ApplicationRoleObjectTest.java │ ├── BorrowerRoleTest.java │ ├── CustomerCoreTest.java │ ├── InvestorRoleTest.java │ └── RoleTest.java ├── saga ├── README.md ├── etc │ ├── saga-flowchart.png │ ├── saga.urm.png │ └── saga.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── saga │ │ ├── choreography │ │ ├── ChoreographyChapter.java │ │ ├── FlyBookingService.java │ │ ├── HotelBookingService.java │ │ ├── OrderService.java │ │ ├── Saga.java │ │ ├── SagaApplication.java │ │ ├── Service.java │ │ ├── ServiceDiscoveryService.java │ │ └── WithdrawMoneyService.java │ │ └── orchestration │ │ ├── ChapterResult.java │ │ ├── FlyBookingService.java │ │ ├── HotelBookingService.java │ │ ├── OrchestrationChapter.java │ │ ├── OrderService.java │ │ ├── Saga.java │ │ ├── SagaApplication.java │ │ ├── SagaOrchestrator.java │ │ ├── Service.java │ │ ├── ServiceDiscoveryService.java │ │ └── WithdrawMoneyService.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── saga │ ├── choreography │ ├── SagaApplicationTest.java │ └── SagaChoreographyTest.java │ └── orchestration │ ├── SagaApplicationTest.java │ ├── SagaOrchestratorInternallyTest.java │ └── SagaOrchestratorTest.java ├── separated-interface ├── README.md ├── etc │ ├── class_diagram.png │ ├── separated-interface-sequence-diagram.png │ └── separated-interface.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── separatedinterface │ │ ├── App.java │ │ ├── invoice │ │ ├── InvoiceGenerator.java │ │ └── TaxCalculator.java │ │ └── taxes │ │ ├── DomesticTaxCalculator.java │ │ └── ForeignTaxCalculator.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── separatedinterface │ ├── AppTest.java │ ├── invoice │ └── InvoiceGeneratorTest.java │ └── taxes │ ├── DomesticTaxCalculatorTest.java │ └── ForeignTaxCalculatorTest.java ├── serialized-entity ├── README.md ├── etc │ ├── class_diagram.urm.png │ ├── serialize-entity.urm.puml │ ├── serialized-entity-flowchart.png │ └── serialized-entity.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── serializedentity │ │ ├── App.java │ │ ├── Country.java │ │ ├── CountryDao.java │ │ └── CountrySchemaSql.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── serializedentity │ ├── AppTest.java │ └── CountryTest.java ├── serialized-lob ├── README.md ├── etc │ ├── serialized-lob-flowchart.png │ ├── serialized-lob.urm.puml │ ├── slob.urm.png │ ├── slob.urm.puml │ └── slob.urm.uml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── slob │ │ ├── App.java │ │ ├── dbservice │ │ └── DatabaseService.java │ │ ├── lob │ │ ├── Animal.java │ │ ├── Forest.java │ │ └── Plant.java │ │ └── serializers │ │ ├── BlobSerializer.java │ │ ├── ClobSerializer.java │ │ └── LobSerializer.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── slob │ └── AppTest.java ├── servant ├── README.md ├── etc │ ├── servant-pattern.png │ ├── servant-pattern.ucls │ ├── servant-sequence-diagram.png │ └── servant.urm.puml ├── pom.xml └── src │ ├── etc │ ├── servant.jpg │ ├── servant.svg │ └── servant.xml │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── servant │ │ ├── App.java │ │ ├── King.java │ │ ├── Queen.java │ │ ├── Royalty.java │ │ └── Servant.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── servant │ ├── AppTest.java │ ├── KingTest.java │ ├── QueenTest.java │ └── ServantTest.java ├── server-session ├── README.md ├── etc │ ├── server-session-sequence-diagram.png │ ├── server-session.urm.png │ └── server-session.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── sessionserver │ │ ├── App.java │ │ ├── LoginHandler.java │ │ └── LogoutHandler.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── sessionserver │ ├── LoginHandlerTest.java │ └── LogoutHandlerTest.java ├── service-layer ├── README.md ├── etc │ ├── service-layer-architecture-diagram.png │ ├── service-layer.png │ ├── service-layer.ucls │ └── service-layer.urm.puml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── iluwatar │ │ │ └── servicelayer │ │ │ ├── app │ │ │ └── App.java │ │ │ ├── common │ │ │ ├── BaseEntity.java │ │ │ ├── Dao.java │ │ │ └── DaoBaseImpl.java │ │ │ ├── hibernate │ │ │ └── HibernateUtil.java │ │ │ ├── magic │ │ │ ├── MagicService.java │ │ │ └── MagicServiceImpl.java │ │ │ ├── spell │ │ │ ├── Spell.java │ │ │ ├── SpellDao.java │ │ │ └── SpellDaoImpl.java │ │ │ ├── spellbook │ │ │ ├── Spellbook.java │ │ │ ├── SpellbookDao.java │ │ │ └── SpellbookDaoImpl.java │ │ │ └── wizard │ │ │ ├── Wizard.java │ │ │ ├── WizardDao.java │ │ │ └── WizardDaoImpl.java │ └── resources │ │ └── logback.xml │ └── test │ └── java │ └── com │ └── iluwatar │ └── servicelayer │ ├── app │ └── AppTest.java │ ├── common │ └── BaseDaoTest.java │ ├── magic │ └── MagicServiceImplTest.java │ ├── spell │ └── SpellDaoImplTest.java │ ├── spellbook │ └── SpellbookDaoImplTest.java │ └── wizard │ └── WizardDaoImplTest.java ├── service-locator ├── README.md ├── etc │ ├── service-locator-sequence-diagram.png │ ├── service-locator.png │ ├── service-locator.ucls │ └── service-locator.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── servicelocator │ │ ├── App.java │ │ ├── InitContext.java │ │ ├── Service.java │ │ ├── ServiceCache.java │ │ ├── ServiceImpl.java │ │ └── ServiceLocator.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── servicelocator │ ├── AppTest.java │ └── ServiceLocatorTest.java ├── service-stub ├── README.md ├── etc │ └── service-stub-sequence-diagram.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── servicestub │ │ ├── App.java │ │ ├── RealSentimentAnalysisServer.java │ │ ├── SentimentAnalysisServer.java │ │ └── StubSentimentAnalysisServer.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── servicestub │ ├── AppTest.java │ ├── RealSentimentAnalysisServerTest.java │ └── StubSentimentAnalysisServerTest.java ├── service-to-worker ├── README.md ├── etc │ ├── service-to-worker-sequence-diagram.png │ ├── service-to-worker.png │ ├── service-to-worker.puml │ └── service-to-worker.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── servicetoworker │ │ ├── Action.java │ │ ├── App.java │ │ ├── Command.java │ │ ├── Dispatcher.java │ │ ├── GiantController.java │ │ ├── GiantModel.java │ │ └── GiantView.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── servicetoworker │ ├── ActionTest.java │ ├── AppTest.java │ ├── DispatcherTest.java │ ├── GiantControllerTest.java │ ├── GiantModelTest.java │ └── GiantViewTest.java ├── session-facade ├── README.md ├── etc │ ├── session-facade-sequence-diagram.png │ ├── session-facade.urm.png │ └── session-facade.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── sessionfacade │ │ ├── App.java │ │ ├── CartService.java │ │ ├── OrderService.java │ │ ├── PaymentService.java │ │ ├── Product.java │ │ ├── ProductCatalogService.java │ │ └── ShoppingFacade.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── sessionfacade │ ├── AppTest.java │ ├── CartServiceTest.java │ ├── PaymentServiceTest.java │ ├── ProductTest.java │ └── ShoppingFacadeTest.java ├── sharding ├── README.md ├── etc │ ├── sharding-flowchart.png │ ├── sharding.urm.png │ └── sharding.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── sharding │ │ ├── App.java │ │ ├── Data.java │ │ ├── HashShardManager.java │ │ ├── LookupShardManager.java │ │ ├── RangeShardManager.java │ │ ├── Shard.java │ │ └── ShardManager.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── sharding │ ├── AppTest.java │ ├── HashShardManagerTest.java │ ├── LookupShardManagerTest.java │ ├── RangeShardManagerTest.java │ ├── ShardManagerTest.java │ └── ShardTest.java ├── single-table-inheritance ├── README.md ├── etc │ ├── single-table-inheritance-flowchart.png │ ├── single-table-inheritance.urm.png │ └── single-table-inheritance.urm.puml ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── iluwatar │ │ ├── SingleTableInheritance.java │ │ ├── entity │ │ ├── Car.java │ │ ├── Freighter.java │ │ ├── PassengerVehicle.java │ │ ├── Train.java │ │ ├── TransportVehicle.java │ │ ├── Truck.java │ │ └── Vehicle.java │ │ ├── repository │ │ └── VehicleRepository.java │ │ └── service │ │ └── VehicleService.java │ └── resources │ └── application.properties ├── singleton ├── README.md ├── etc │ ├── singleton-sequence-diagram.png │ ├── singleton.urm.png │ └── singleton.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── singleton │ │ ├── App.java │ │ ├── BillPughImplementation.java │ │ ├── EnumIvoryTower.java │ │ ├── InitializingOnDemandHolderIdiom.java │ │ ├── IvoryTower.java │ │ ├── ThreadSafeDoubleCheckLocking.java │ │ ├── ThreadSafeLazyLoadedIvoryTower.java │ │ └── package-info.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── singleton │ ├── AppTest.java │ ├── BillPughImplementationTest.java │ ├── EnumIvoryTowerTest.java │ ├── InitializingOnDemandHolderIdiomTest.java │ ├── IvoryTowerTest.java │ ├── SingletonTest.java │ ├── ThreadSafeDoubleCheckLockingTest.java │ └── ThreadSafeLazyLoadedIvoryTowerTest.java ├── spatial-partition ├── README.md ├── etc │ ├── spatial-partition-flowchart.png │ ├── spatial-partition.urm.png │ └── spatial-partition.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── spatialpartition │ │ ├── App.java │ │ ├── Bubble.java │ │ ├── Point.java │ │ ├── QuadTree.java │ │ ├── Rect.java │ │ ├── SpatialPartitionBubbles.java │ │ └── SpatialPartitionGeneric.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── spatialpartition │ ├── BubbleTest.java │ ├── QuadTreeTest.java │ ├── RectTest.java │ └── SpatialPartitionBubblesTest.java ├── special-case ├── README.md ├── etc │ ├── special-case-sequence-diagram.png │ ├── special-case.urm.puml │ └── special_case_urm.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── specialcase │ │ ├── App.java │ │ ├── ApplicationServices.java │ │ ├── ApplicationServicesImpl.java │ │ ├── Db.java │ │ ├── DomainServices.java │ │ ├── DomainServicesImpl.java │ │ ├── DownForMaintenance.java │ │ ├── InsufficientFunds.java │ │ ├── InvalidUser.java │ │ ├── MaintenanceLock.java │ │ ├── MoneyTransaction.java │ │ ├── OutOfStock.java │ │ ├── ReceiptDto.java │ │ └── ReceiptViewModel.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── specialcase │ ├── AppTest.java │ └── SpecialCasesTest.java ├── specification ├── README.md ├── etc │ ├── specification-flowchart.png │ ├── specification.png │ ├── specification.ucls │ └── specification.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── specification │ │ ├── app │ │ └── App.java │ │ ├── creature │ │ ├── AbstractCreature.java │ │ ├── Creature.java │ │ ├── Dragon.java │ │ ├── Goblin.java │ │ ├── KillerBee.java │ │ ├── Octopus.java │ │ ├── Shark.java │ │ └── Troll.java │ │ ├── property │ │ ├── Color.java │ │ ├── Mass.java │ │ ├── Movement.java │ │ └── Size.java │ │ └── selector │ │ ├── AbstractSelector.java │ │ ├── ColorSelector.java │ │ ├── ConjunctionSelector.java │ │ ├── DisjunctionSelector.java │ │ ├── MassEqualSelector.java │ │ ├── MassGreaterThanSelector.java │ │ ├── MassSmallerThanOrEqSelector.java │ │ ├── MovementSelector.java │ │ ├── NegationSelector.java │ │ └── SizeSelector.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── specification │ ├── app │ └── AppTest.java │ ├── creature │ └── CreatureTest.java │ └── selector │ ├── ColorSelectorTest.java │ ├── CompositeSelectorsTest.java │ ├── MassSelectorTest.java │ ├── MovementSelectorTest.java │ └── SizeSelectorTest.java ├── state ├── README.md ├── etc │ ├── state-flowchart.png │ ├── state.urm.puml │ └── state_urm.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── state │ │ ├── AngryState.java │ │ ├── App.java │ │ ├── Mammoth.java │ │ ├── PeacefulState.java │ │ └── State.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── state │ ├── AppTest.java │ └── MammothTest.java ├── step-builder ├── README.md ├── etc │ ├── step-builder-sequence-diagram.png │ ├── step-builder.png │ ├── step-builder.ucls │ └── step-builder.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── stepbuilder │ │ ├── App.java │ │ ├── Character.java │ │ └── CharacterStepBuilder.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── stepbuilder │ ├── AppTest.java │ └── CharacterStepBuilderTest.java ├── strangler ├── README.md ├── etc │ ├── strangler-flowchart.png │ ├── strangler.png │ ├── strangler.puml │ └── strangler.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── strangler │ │ ├── App.java │ │ ├── HalfArithmetic.java │ │ ├── HalfSource.java │ │ ├── NewArithmetic.java │ │ ├── NewSource.java │ │ ├── OldArithmetic.java │ │ └── OldSource.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── strangler │ ├── AppTest.java │ ├── HalfArithmeticTest.java │ ├── HalfSourceTest.java │ ├── NewArithmeticTest.java │ ├── NewSourceTest.java │ ├── OldArithmeticTest.java │ └── OldSourceTest.java ├── strategy ├── README.md ├── etc │ ├── strategy-flowchart.png │ ├── strategy.urm.puml │ └── strategy_urm.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── strategy │ │ ├── App.java │ │ ├── DragonSlayer.java │ │ ├── DragonSlayingStrategy.java │ │ ├── LambdaStrategy.java │ │ ├── MeleeStrategy.java │ │ ├── ProjectileStrategy.java │ │ └── SpellStrategy.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── strategy │ ├── AppTest.java │ ├── DragonSlayerTest.java │ └── DragonSlayingStrategyTest.java ├── subclass-sandbox ├── README.md ├── etc │ ├── subclass-sandbox-flowchart.png │ ├── subclass-sandbox.urm.png │ └── subclass-sandbox.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── subclasssandbox │ │ ├── App.java │ │ ├── GroundDive.java │ │ ├── SkyLaunch.java │ │ └── Superpower.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── subclasssandbox │ ├── AppTest.java │ ├── GroundDiveTest.java │ └── SkyLaunchTest.java ├── table-inheritance ├── README.md ├── etc │ ├── table-inheritance-mind-map.png │ └── table-inheritance.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── table │ │ └── inheritance │ │ ├── App.java │ │ ├── Car.java │ │ ├── Truck.java │ │ ├── Vehicle.java │ │ └── VehicleDatabase.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── table │ └── inheritance │ ├── AppTest.java │ └── VehicleDatabaseTest.java ├── table-module ├── README.md ├── etc │ ├── table-module-flowchart.png │ ├── table-module.urm.png │ └── table-module.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── tablemodule │ │ ├── App.java │ │ ├── User.java │ │ └── UserTableModule.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── tablemodule │ ├── AppTest.java │ ├── UserTableModuleTest.java │ └── UserTest.java ├── template-method ├── README.md ├── etc │ ├── template-method-sequence-diagram.png │ ├── template-method.urm.puml │ └── template_method_urm.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── templatemethod │ │ ├── App.java │ │ ├── HalflingThief.java │ │ ├── HitAndRunMethod.java │ │ ├── StealingMethod.java │ │ └── SubtleMethod.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── templatemethod │ ├── AppTest.java │ ├── HalflingThiefTest.java │ ├── HitAndRunMethodTest.java │ ├── StealingMethodTest.java │ └── SubtleMethodTest.java ├── templateview ├── README.md ├── etc │ ├── template-view-flowchart.png │ ├── template-view.urm.puml │ ├── template_view_urm.png │ └── templateview.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── templateview │ │ ├── App.java │ │ ├── ContactPageView.java │ │ ├── HomePageView.java │ │ └── TemplateView.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── templateview │ ├── AppTest.java │ ├── ContactPageViewTest.java │ ├── HomePageViewTest.java │ └── TemplateViewTest.java ├── thread-pool-executor ├── README.md ├── etc │ ├── thread-pool-executor.urm.png │ └── thread-pool-executor.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── threadpoolexecutor │ │ ├── App.java │ │ ├── FrontDeskService.java │ │ ├── GuestCheckInTask.java │ │ └── VipGuestCheckInTask.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── threadpoolexecutor │ ├── AppTest.java │ ├── FrontDeskServiceTest.java │ ├── GuestCheckInTaskTest.java │ └── VipGuestCheckInTaskTest.java ├── throttling ├── README.md ├── etc │ ├── throttling-flowchart.png │ ├── throttling.urm.puml │ └── throttling_urm.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── throttling │ │ ├── App.java │ │ ├── BarCustomer.java │ │ ├── Bartender.java │ │ ├── CallsCount.java │ │ └── timer │ │ ├── ThrottleTimerImpl.java │ │ └── Throttler.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── throttling │ ├── AppTest.java │ ├── BarCustomerTest.java │ └── BartenderTest.java ├── tolerant-reader ├── README.md ├── etc │ ├── tolerant-reader-sequence-diagram.png │ ├── tolerant-reader.urm.puml │ └── tolerant_reader_urm.png ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── tolerantreader │ │ ├── App.java │ │ ├── RainbowFish.java │ │ ├── RainbowFishSerializer.java │ │ └── RainbowFishV2.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── tolerantreader │ ├── AppTest.java │ ├── RainbowFishSerializerTest.java │ ├── RainbowFishTest.java │ └── RainbowFishV2Test.java ├── trampoline ├── .gitignore ├── README.md ├── etc │ ├── trampoline-flowchart.png │ ├── trampoline.urm.png │ └── trampoline.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── trampoline │ │ ├── Trampoline.java │ │ └── TrampolineApp.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── trampoline │ └── TrampolineAppTest.java ├── transaction-script ├── .gitignore ├── README.md ├── etc │ ├── transaction-script-flowchart.png │ ├── transaction-script.png │ └── transaction-script.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── transactionscript │ │ ├── App.java │ │ ├── Hotel.java │ │ ├── HotelDao.java │ │ ├── HotelDaoImpl.java │ │ ├── Room.java │ │ └── RoomSchemaSql.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── transactionscript │ ├── AppTest.java │ ├── HotelDaoImplTest.java │ ├── HotelTest.java │ └── RoomTest.java ├── twin ├── .gitignore ├── README.md ├── etc │ ├── twin-sequence-diagram.png │ ├── twin.png │ ├── twin.ucls │ └── twin.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── twin │ │ ├── App.java │ │ ├── BallItem.java │ │ ├── BallThread.java │ │ └── GameItem.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── twin │ ├── AppTest.java │ ├── BallItemTest.java │ └── BallThreadTest.java ├── type-object ├── README.md ├── etc │ ├── type-object-flowchart.png │ ├── type-object.urm.puml │ ├── typeobjectpattern.urm.png │ └── typeobjectpattern.urm.puml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── iluwatar │ │ │ └── typeobject │ │ │ ├── App.java │ │ │ ├── Candy.java │ │ │ ├── CandyGame.java │ │ │ ├── Cell.java │ │ │ ├── CellPool.java │ │ │ └── JsonParser.java │ └── resources │ │ └── candy.json │ └── test │ └── java │ └── com │ └── iluwatar │ └── typeobject │ ├── CandyGameTest.java │ ├── CellPoolTest.java │ └── CellTest.java ├── unit-of-work ├── README.md ├── etc │ ├── unit-of-work-flowchart.png │ ├── unit-of-work.ucls │ ├── unit-of-work.urm.png │ └── unit-of-work.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── unitofwork │ │ ├── App.java │ │ ├── ArmsDealer.java │ │ ├── UnitActions.java │ │ ├── UnitOfWork.java │ │ ├── Weapon.java │ │ └── WeaponDatabase.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── unitofwork │ ├── AppTest.java │ └── ArmsDealerTest.java ├── update-method ├── README.md ├── etc │ ├── update-method-sequence-diagram.png │ ├── update-method.urm.png │ └── update-method.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── updatemethod │ │ ├── App.java │ │ ├── Entity.java │ │ ├── Skeleton.java │ │ ├── Statue.java │ │ └── World.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── updatemethod │ ├── AppTest.java │ ├── SkeletonTest.java │ ├── StatueTest.java │ └── WorldTest.java ├── value-object ├── README.md ├── etc │ ├── value-object-flowchart.png │ ├── value-object.png │ ├── value-object.ucls │ └── value-object.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── value │ │ └── object │ │ ├── App.java │ │ └── HeroStat.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── value │ └── object │ ├── AppTest.java │ └── HeroStatTest.java ├── version-number ├── README.md ├── etc │ ├── version-number-flowchart.png │ ├── version-number.urm.png │ └── version-number.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── versionnumber │ │ ├── App.java │ │ ├── Book.java │ │ ├── BookDuplicateException.java │ │ ├── BookNotFoundException.java │ │ ├── BookRepository.java │ │ └── VersionMismatchException.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── versionnumber │ ├── AppTest.java │ └── BookRepositoryTest.java ├── virtual-proxy ├── .gitignore ├── README.md ├── etc │ ├── virtual-proxy-sequence-diagram.png │ ├── virtual-proxy.urm.puml │ ├── virtual.proxy.urm.png │ └── virtual.proxy.urm.puml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── iluwatar │ │ └── virtual │ │ └── proxy │ │ ├── App.java │ │ ├── ExpensiveObject.java │ │ ├── RealVideoObject.java │ │ └── VideoObjectProxy.java │ └── test │ └── java │ └── com │ └── iluwatar │ └── virtual │ └── proxy │ ├── AppTest.java │ ├── RealVideoObjectTest.java │ └── VideoObjectProxyTest.java └── visitor ├── README.md ├── etc ├── visitor-sequence-diagram.png ├── visitor.png ├── visitor.ucls ├── visitor.urm.puml └── visitor_1.png ├── pom.xml └── src ├── main └── java │ └── com │ └── iluwatar │ └── visitor │ ├── App.java │ ├── Commander.java │ ├── CommanderVisitor.java │ ├── Sergeant.java │ ├── SergeantVisitor.java │ ├── Soldier.java │ ├── SoldierVisitor.java │ ├── Unit.java │ └── UnitVisitor.java └── test └── java └── com └── iluwatar └── visitor ├── AppTest.java ├── CommanderTest.java ├── CommanderVisitorTest.java ├── SergeantTest.java ├── SergeantVisitorTest.java ├── SoldierTest.java ├── SoldierVisitorTest.java ├── UnitTest.java └── VisitorTest.java /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [iluwatar] 2 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "maven" # See documentation for possible values 9 | directory: "/" # Location of package manifests 10 | schedule: 11 | interval: "weekly" -------------------------------------------------------------------------------- /CONTRIBUTING.MD: -------------------------------------------------------------------------------- 1 | The project guidelines can be found in [Java Design Patterns developer wiki](https://github.com/iluwatar/java-design-patterns/wiki). 2 | 3 | A good place to start is: https://github.com/iluwatar/java-design-patterns/wiki/01.-How-to-contribute 4 | -------------------------------------------------------------------------------- /PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | # Pull Request Template 2 | 3 | ## What does this PR do? 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /abstract-document/etc/abstract-document.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/abstract-document/etc/abstract-document.png -------------------------------------------------------------------------------- /abstract-factory/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | -------------------------------------------------------------------------------- /abstract-factory/etc/abstract-factory.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/abstract-factory/etc/abstract-factory.urm.png -------------------------------------------------------------------------------- /active-object/etc/active-object-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/active-object/etc/active-object-sequence-diagram.png -------------------------------------------------------------------------------- /active-object/etc/active-object.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/active-object/etc/active-object.urm.png -------------------------------------------------------------------------------- /active-object/etc/active-object.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package com.iluwatar.activeobject { 3 | abstract class ActiveCreature { 4 | - logger : Logger 5 | - name : String 6 | - requests : BlockingQueue 7 | - thread : Thread 8 | + ActiveCreature(name : String) 9 | + eat() 10 | + name() : String 11 | + roam() 12 | } 13 | class App { 14 | - creatures : Integer 15 | - logger : Logger 16 | + App() 17 | + main(args : String[]) {static} 18 | + run() 19 | } 20 | class Orc { 21 | + Orc(name : String) 22 | } 23 | } 24 | Orc --|> ActiveCreature 25 | @enduml -------------------------------------------------------------------------------- /actor-model/etc/Actor_Model_UML_Class_Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/actor-model/etc/Actor_Model_UML_Class_Diagram.png -------------------------------------------------------------------------------- /acyclic-visitor/etc/acyclic-visitor-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/acyclic-visitor/etc/acyclic-visitor-sequence-diagram.png -------------------------------------------------------------------------------- /acyclic-visitor/etc/acyclic-visitor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/acyclic-visitor/etc/acyclic-visitor.png -------------------------------------------------------------------------------- /adapter/etc/adapter-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/adapter/etc/adapter-sequence-diagram.png -------------------------------------------------------------------------------- /adapter/etc/adapter.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/adapter/etc/adapter.urm.png -------------------------------------------------------------------------------- /ambassador/etc/ambassador-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/ambassador/etc/ambassador-sequence-diagram.png -------------------------------------------------------------------------------- /ambassador/etc/ambassador.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/ambassador/etc/ambassador.urm.png -------------------------------------------------------------------------------- /anti-corruption-layer/etc/anti-corruption-layer-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/anti-corruption-layer/etc/anti-corruption-layer-sequence-diagram.png -------------------------------------------------------------------------------- /anti-corruption-layer/etc/anti-corruption-layer.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/anti-corruption-layer/etc/anti-corruption-layer.urm.png -------------------------------------------------------------------------------- /anti-corruption-layer/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/anti-corruption-layer/src/main/resources/application.properties -------------------------------------------------------------------------------- /arrange-act-assert/etc/arrange-act-assert-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/arrange-act-assert/etc/arrange-act-assert-flowchart.png -------------------------------------------------------------------------------- /arrange-act-assert/etc/arrange-act-assert.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package com.iluwatar.arrangeactassert { 3 | class Cash { 4 | - amount : int 5 | ~ Cash(amount : int) 6 | ~ count() : int 7 | ~ minus(subtrahend : int) : boolean 8 | ~ plus(addend : int) 9 | } 10 | } 11 | @enduml -------------------------------------------------------------------------------- /async-method-invocation/etc/async-method-invocation-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/async-method-invocation/etc/async-method-invocation-sequence-diagram.png -------------------------------------------------------------------------------- /async-method-invocation/etc/async-method-invocation.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/async-method-invocation/etc/async-method-invocation.urm.png -------------------------------------------------------------------------------- /backpressure/etc/backpressure-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/backpressure/etc/backpressure-sequence-diagram.png -------------------------------------------------------------------------------- /backpressure/etc/backpressure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/backpressure/etc/backpressure.png -------------------------------------------------------------------------------- /balking/etc/balking-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/balking/etc/balking-flowchart.png -------------------------------------------------------------------------------- /balking/etc/balking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/balking/etc/balking.png -------------------------------------------------------------------------------- /bloc/etc/bloc-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/bloc/etc/bloc-sequence-diagram.png -------------------------------------------------------------------------------- /bloc/etc/bloc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/bloc/etc/bloc.png -------------------------------------------------------------------------------- /bridge/etc/bridge-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/bridge/etc/bridge-sequence-diagram.png -------------------------------------------------------------------------------- /bridge/etc/bridge.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/bridge/etc/bridge.urm.png -------------------------------------------------------------------------------- /builder/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | -------------------------------------------------------------------------------- /builder/etc/builder-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/builder/etc/builder-sequence-diagram.png -------------------------------------------------------------------------------- /builder/etc/builder.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/builder/etc/builder.urm.png -------------------------------------------------------------------------------- /business-delegate/etc/business-delegate-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/business-delegate/etc/business-delegate-sequence-diagram.png -------------------------------------------------------------------------------- /business-delegate/etc/business-delegate.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/business-delegate/etc/business-delegate.urm.png -------------------------------------------------------------------------------- /bytecode/etc/bytecode-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/bytecode/etc/bytecode-sequence-diagram.png -------------------------------------------------------------------------------- /bytecode/etc/bytecode.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/bytecode/etc/bytecode.urm.png -------------------------------------------------------------------------------- /caching/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | -------------------------------------------------------------------------------- /caching/etc/caching-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/caching/etc/caching-flowchart.png -------------------------------------------------------------------------------- /caching/etc/caching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/caching/etc/caching.png -------------------------------------------------------------------------------- /callback/etc/callback-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/callback/etc/callback-sequence-diagram.png -------------------------------------------------------------------------------- /callback/etc/callback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/callback/etc/callback.png -------------------------------------------------------------------------------- /callback/etc/callback.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package com.iluwatar.callback { 3 | class App { 4 | - LOGGER : Logger {static} 5 | - App() 6 | + main(args : String[]) {static} 7 | } 8 | interface Callback { 9 | + call() {abstract} 10 | } 11 | class SimpleTask { 12 | - LOGGER : Logger {static} 13 | + SimpleTask() 14 | + execute() 15 | } 16 | abstract class Task { 17 | + Task() 18 | + execute() {abstract} 19 | ~ executeWith(callback : Callback) 20 | } 21 | } 22 | SimpleTask --|> Task 23 | @enduml -------------------------------------------------------------------------------- /chain-of-responsibility/etc/chain-of-responsibility-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/chain-of-responsibility/etc/chain-of-responsibility-flowchart.png -------------------------------------------------------------------------------- /chain-of-responsibility/etc/chain-of-responsibility.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/chain-of-responsibility/etc/chain-of-responsibility.urm.png -------------------------------------------------------------------------------- /circuit-breaker/etc/circuit-breaker-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/circuit-breaker/etc/circuit-breaker-flowchart.png -------------------------------------------------------------------------------- /circuit-breaker/etc/circuit-breaker.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/circuit-breaker/etc/circuit-breaker.urm.png -------------------------------------------------------------------------------- /clean-architecture/etc/clean-architecture-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/clean-architecture/etc/clean-architecture-flowchart.png -------------------------------------------------------------------------------- /clean-architecture/etc/clean-architecture-mind-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/clean-architecture/etc/clean-architecture-mind-map.png -------------------------------------------------------------------------------- /clean-architecture/etc/cleanArchitectureUMLDiagram.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/clean-architecture/etc/cleanArchitectureUMLDiagram.PNG -------------------------------------------------------------------------------- /clean-architecture/etc/cleanArchitectureUMLDiagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/clean-architecture/etc/cleanArchitectureUMLDiagram.png -------------------------------------------------------------------------------- /client-session/etc/client-session-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/client-session/etc/client-session-sequence-diagram.png -------------------------------------------------------------------------------- /collecting-parameter/etc/collecting-parameter-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/collecting-parameter/etc/collecting-parameter-flowchart.png -------------------------------------------------------------------------------- /collecting-parameter/etc/collecting-parameter.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/collecting-parameter/etc/collecting-parameter.urm.png -------------------------------------------------------------------------------- /collection-pipeline/etc/collection-pipeline-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/collection-pipeline/etc/collection-pipeline-flowchart.png -------------------------------------------------------------------------------- /collection-pipeline/etc/collection-pipeline.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/collection-pipeline/etc/collection-pipeline.urm.png -------------------------------------------------------------------------------- /combinator/etc/combinator-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/combinator/etc/combinator-flowchart.png -------------------------------------------------------------------------------- /combinator/etc/combinator.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/combinator/etc/combinator.urm.png -------------------------------------------------------------------------------- /command-query-responsibility-segregation/etc/cqrs-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/command-query-responsibility-segregation/etc/cqrs-architecture-diagram.png -------------------------------------------------------------------------------- /command-query-responsibility-segregation/etc/cqrs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/command-query-responsibility-segregation/etc/cqrs.png -------------------------------------------------------------------------------- /command/etc/command-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/command/etc/command-sequence-diagram.png -------------------------------------------------------------------------------- /command/etc/command.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/command/etc/command.png -------------------------------------------------------------------------------- /commander/etc/commander-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/commander/etc/commander-sequence-diagram.png -------------------------------------------------------------------------------- /commander/etc/commander.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/commander/etc/commander.urm.png -------------------------------------------------------------------------------- /component/etc/component-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/component/etc/component-architecture-diagram.png -------------------------------------------------------------------------------- /component/etc/component.uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/component/etc/component.uml.png -------------------------------------------------------------------------------- /composite-entity/etc/composite-entity-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/composite-entity/etc/composite-entity-flowchart.png -------------------------------------------------------------------------------- /composite-entity/etc/composite_entity.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/composite-entity/etc/composite_entity.urm.png -------------------------------------------------------------------------------- /composite-view/etc/composite-view-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/composite-view/etc/composite-view-flowchart.png -------------------------------------------------------------------------------- /composite-view/etc/composite_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/composite-view/etc/composite_view.png -------------------------------------------------------------------------------- /composite/etc/composite-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/composite/etc/composite-flowchart.png -------------------------------------------------------------------------------- /composite/etc/composite.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/composite/etc/composite.urm.png -------------------------------------------------------------------------------- /context-object/etc/context-object-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/context-object/etc/context-object-sequence-diagram.png -------------------------------------------------------------------------------- /context-object/etc/context-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/context-object/etc/context-object.png -------------------------------------------------------------------------------- /converter/etc/converter-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/converter/etc/converter-sequence-diagram.png -------------------------------------------------------------------------------- /converter/etc/converter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/converter/etc/converter.png -------------------------------------------------------------------------------- /curiously-recurring-template-pattern/etc/crtp-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/curiously-recurring-template-pattern/etc/crtp-flowchart.png -------------------------------------------------------------------------------- /curiously-recurring-template-pattern/etc/curiously-recurring-template-pattern.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | @enduml -------------------------------------------------------------------------------- /currying/etc/currying-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/currying/etc/currying-sequence-diagram.png -------------------------------------------------------------------------------- /currying/etc/currying.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/currying/etc/currying.urm.png -------------------------------------------------------------------------------- /data-access-object/etc/dao-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/data-access-object/etc/dao-sequence-diagram.png -------------------------------------------------------------------------------- /data-access-object/etc/dao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/data-access-object/etc/dao.png -------------------------------------------------------------------------------- /data-bus/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /data-bus/etc/data-bus-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/data-bus/etc/data-bus-sequence-diagram.png -------------------------------------------------------------------------------- /data-bus/etc/data-bus.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/data-bus/etc/data-bus.urm.png -------------------------------------------------------------------------------- /data-locality/etc/data-locality-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/data-locality/etc/data-locality-flowchart.png -------------------------------------------------------------------------------- /data-locality/etc/data-locality-mind-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/data-locality/etc/data-locality-mind-map.png -------------------------------------------------------------------------------- /data-locality/etc/data-locality.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/data-locality/etc/data-locality.urm.png -------------------------------------------------------------------------------- /data-mapper/etc/data-mapper-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/data-mapper/etc/data-mapper-sequence-diagram.png -------------------------------------------------------------------------------- /data-mapper/etc/data-mapper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/data-mapper/etc/data-mapper.png -------------------------------------------------------------------------------- /data-transfer-object/etc/data-transfer-object.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/data-transfer-object/etc/data-transfer-object.urm.png -------------------------------------------------------------------------------- /data-transfer-object/etc/dto-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/data-transfer-object/etc/dto-sequence-diagram.png -------------------------------------------------------------------------------- /decorator/etc/decorator-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/decorator/etc/decorator-sequence-diagram.png -------------------------------------------------------------------------------- /decorator/etc/decorator.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/decorator/etc/decorator.urm.png -------------------------------------------------------------------------------- /delegation/etc/delegation-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/delegation/etc/delegation-sequence-diagram.png -------------------------------------------------------------------------------- /delegation/etc/delegation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/delegation/etc/delegation.png -------------------------------------------------------------------------------- /dependency-injection/etc/dependency-injection-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/dependency-injection/etc/dependency-injection-sequence-diagram.png -------------------------------------------------------------------------------- /dependency-injection/etc/dependency-injection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/dependency-injection/etc/dependency-injection.png -------------------------------------------------------------------------------- /dirty-flag/etc/dirty-flag-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/dirty-flag/etc/dirty-flag-flowchart.png -------------------------------------------------------------------------------- /dirty-flag/etc/dirty-flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/dirty-flag/etc/dirty-flag.png -------------------------------------------------------------------------------- /dirty-flag/etc/dirty-flag.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package com.iluwatar.dirtyflag { 3 | class App { 4 | - LOGGER : Logger {static} 5 | + App() 6 | + main(args : String[]) {static} 7 | + run() 8 | } 9 | class DataFetcher { 10 | - LOGGER : Logger {static} 11 | - filename : String 12 | - lastFetched : long 13 | + DataFetcher() 14 | + fetch() : List 15 | - isDirty(fileLastModified : long) : boolean 16 | } 17 | class World { 18 | - countries : List 19 | - df : DataFetcher 20 | + World() 21 | + fetch() : List 22 | } 23 | } 24 | World --> "-df" DataFetcher 25 | @enduml -------------------------------------------------------------------------------- /dirty-flag/src/main/resources/world.txt: -------------------------------------------------------------------------------- 1 | UNITED_KINGDOM 2 | MALAYSIA 3 | UNITED_STATES -------------------------------------------------------------------------------- /domain-model/etc/domain-model-mind-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/domain-model/etc/domain-model-mind-map.png -------------------------------------------------------------------------------- /domain-model/etc/domain-model.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/domain-model/etc/domain-model.urm.png -------------------------------------------------------------------------------- /double-buffer/etc/double-buffer-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/double-buffer/etc/double-buffer-sequence-diagram.png -------------------------------------------------------------------------------- /double-buffer/etc/double-buffer.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/double-buffer/etc/double-buffer.urm.png -------------------------------------------------------------------------------- /double-checked-locking/etc/double-checked-locking-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/double-checked-locking/etc/double-checked-locking-flowchart.png -------------------------------------------------------------------------------- /double-checked-locking/etc/double-checked-locking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/double-checked-locking/etc/double-checked-locking.png -------------------------------------------------------------------------------- /double-checked-locking/etc/double-checked-locking.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package com.iluwatar.doublechecked.locking { 3 | class App { 4 | - LOGGER : Logger {static} 5 | + App() 6 | + main(args : String[]) {static} 7 | } 8 | class Inventory { 9 | - LOGGER : Logger {static} 10 | - inventorySize : int 11 | - items : List 12 | - lock : Lock 13 | + Inventory(inventorySize : int) 14 | + addItem(item : Item) : boolean 15 | + getItems() : List 16 | } 17 | class Item { 18 | + Item() 19 | } 20 | } 21 | Inventory --> "-items" Item 22 | @enduml -------------------------------------------------------------------------------- /double-checked-locking/etc/double_checked_locking_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/double-checked-locking/etc/double_checked_locking_1.png -------------------------------------------------------------------------------- /double-dispatch/etc/double-dispatch-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/double-dispatch/etc/double-dispatch-sequence-diagram.png -------------------------------------------------------------------------------- /double-dispatch/etc/double-dispatch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/double-dispatch/etc/double-dispatch.png -------------------------------------------------------------------------------- /dynamic-proxy/etc/dynamic-proxy-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/dynamic-proxy/etc/dynamic-proxy-sequence-diagram.png -------------------------------------------------------------------------------- /dynamic-proxy/etc/dynamic-proxy.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/dynamic-proxy/etc/dynamic-proxy.urm.png -------------------------------------------------------------------------------- /event-aggregator/etc/classes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/event-aggregator/etc/classes.png -------------------------------------------------------------------------------- /event-aggregator/etc/event-aggregator-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/event-aggregator/etc/event-aggregator-sequence-diagram.png -------------------------------------------------------------------------------- /event-based-asynchronous/etc/event-asynchronous.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/event-based-asynchronous/etc/event-asynchronous.png -------------------------------------------------------------------------------- /event-based-asynchronous/etc/event-based-asynchronous-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/event-based-asynchronous/etc/event-based-asynchronous-sequence-diagram.png -------------------------------------------------------------------------------- /event-driven-architecture/etc/eda-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/event-driven-architecture/etc/eda-architecture-diagram.png -------------------------------------------------------------------------------- /event-driven-architecture/etc/eda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/event-driven-architecture/etc/eda.png -------------------------------------------------------------------------------- /event-queue/etc/Bass-Drum-1.aif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/event-queue/etc/Bass-Drum-1.aif -------------------------------------------------------------------------------- /event-queue/etc/Bass-Drum-1.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/event-queue/etc/Bass-Drum-1.wav -------------------------------------------------------------------------------- /event-queue/etc/Closed-Hi-Hat-1.aif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/event-queue/etc/Closed-Hi-Hat-1.aif -------------------------------------------------------------------------------- /event-queue/etc/Closed-Hi-Hat-1.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/event-queue/etc/Closed-Hi-Hat-1.wav -------------------------------------------------------------------------------- /event-queue/etc/event-queue-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/event-queue/etc/event-queue-sequence-diagram.png -------------------------------------------------------------------------------- /event-sourcing/etc/event-sourcing-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/event-sourcing/etc/event-sourcing-architecture-diagram.png -------------------------------------------------------------------------------- /event-sourcing/etc/event-sourcing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/event-sourcing/etc/event-sourcing.png -------------------------------------------------------------------------------- /execute-around/etc/execute-around-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/execute-around/etc/execute-around-flowchart.png -------------------------------------------------------------------------------- /execute-around/etc/execute-around.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/execute-around/etc/execute-around.png -------------------------------------------------------------------------------- /execute-around/etc/execute-around.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package com.iluwatar.execute.around { 3 | class App { 4 | + App() 5 | + main(args : String[]) {static} 6 | } 7 | interface FileWriterAction { 8 | + writeFile(FileWriter) {abstract} 9 | } 10 | class SimpleFileWriter { 11 | + SimpleFileWriter(filename : String, action : FileWriterAction) 12 | } 13 | } 14 | @enduml -------------------------------------------------------------------------------- /extension-objects/etc/extension-objects-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/extension-objects/etc/extension-objects-sequence-diagram.png -------------------------------------------------------------------------------- /extension-objects/etc/extension-objects.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | @enduml -------------------------------------------------------------------------------- /extension-objects/etc/extension_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/extension-objects/etc/extension_obj.png -------------------------------------------------------------------------------- /facade/etc/facade-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/facade/etc/facade-sequence-diagram.png -------------------------------------------------------------------------------- /facade/etc/facade.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/facade/etc/facade.urm.png -------------------------------------------------------------------------------- /factory-kit/etc/factory-kit-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/factory-kit/etc/factory-kit-sequence-diagram.png -------------------------------------------------------------------------------- /factory-kit/etc/factory-kit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/factory-kit/etc/factory-kit.png -------------------------------------------------------------------------------- /factory-method/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | -------------------------------------------------------------------------------- /factory-method/etc/factory-method-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/factory-method/etc/factory-method-sequence-diagram.png -------------------------------------------------------------------------------- /factory-method/etc/factory-method.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/factory-method/etc/factory-method.urm.png -------------------------------------------------------------------------------- /factory/etc/factory-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/factory/etc/factory-sequence-diagram.png -------------------------------------------------------------------------------- /factory/etc/factory.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/factory/etc/factory.urm.png -------------------------------------------------------------------------------- /fanout-fanin/etc/fan-out-fan-in-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/fanout-fanin/etc/fan-out-fan-in-flowchart.png -------------------------------------------------------------------------------- /fanout-fanin/etc/fanout-fanin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/fanout-fanin/etc/fanout-fanin.png -------------------------------------------------------------------------------- /feature-toggle/etc/feature-toggle-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/feature-toggle/etc/feature-toggle-flowchart.png -------------------------------------------------------------------------------- /feature-toggle/etc/feature-toggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/feature-toggle/etc/feature-toggle.png -------------------------------------------------------------------------------- /filterer/etc/filterer-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/filterer/etc/filterer-flowchart.png -------------------------------------------------------------------------------- /filterer/etc/filterer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/filterer/etc/filterer.png -------------------------------------------------------------------------------- /fluent-interface/etc/fluent-interface-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/fluent-interface/etc/fluent-interface-sequence-diagram.png -------------------------------------------------------------------------------- /fluent-interface/etc/fluentinterface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/fluent-interface/etc/fluentinterface.png -------------------------------------------------------------------------------- /flux/etc/flux-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/flux/etc/flux-architecture-diagram.png -------------------------------------------------------------------------------- /flux/etc/flux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/flux/etc/flux.png -------------------------------------------------------------------------------- /flyweight/etc/flyweight-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/flyweight/etc/flyweight-sequence-diagram.png -------------------------------------------------------------------------------- /flyweight/etc/flyweight.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/flyweight/etc/flyweight.urm.png -------------------------------------------------------------------------------- /front-controller/etc/front-controller-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/front-controller/etc/front-controller-architecture-diagram.png -------------------------------------------------------------------------------- /front-controller/etc/front-controller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/front-controller/etc/front-controller.png -------------------------------------------------------------------------------- /function-composition/etc/function-composition-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/function-composition/etc/function-composition-sequence-diagram.png -------------------------------------------------------------------------------- /function-composition/etc/function-composition.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package com.iluwatar.function.composition { 3 | class App { 4 | + App() 5 | + main(args : String[]) {static} 6 | } 7 | class FunctionComposer { 8 | + FunctionComposer() 9 | + composeFunctions(f1 : Function, f2 : Function) : Function {static} 10 | } 11 | } 12 | @enduml -------------------------------------------------------------------------------- /function-composition/etc/function.composition.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/function-composition/etc/function.composition.urm.png -------------------------------------------------------------------------------- /function-composition/etc/function.composition.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | skinparam monochrome true 3 | 4 | participant "App" as App 5 | participant "FunctionComposer" as Composer 6 | participant "Function" as F1 7 | 8 | create F1 9 | App -> F1 : func1 = x -> x * 2 10 | create F1 11 | App -> F1 : func2 = x -> x * x 12 | 13 | App -> Composer : func1, func2 14 | activate Composer 15 | Composer -> F1 : func1.andThen(func2) 16 | deactivate Composer 17 | activate F1 18 | F1 -> App : composedFunction 19 | deactivate F1 20 | 21 | @enduml -------------------------------------------------------------------------------- /game-loop/etc/game-loop-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/game-loop/etc/game-loop-flowchart.png -------------------------------------------------------------------------------- /game-loop/etc/game-loop.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/game-loop/etc/game-loop.urm.png -------------------------------------------------------------------------------- /gateway/etc/gateway-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/gateway/etc/gateway-sequence-diagram.png -------------------------------------------------------------------------------- /gateway/etc/gateway.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/gateway/etc/gateway.urm.png -------------------------------------------------------------------------------- /guarded-suspension/etc/guarded-suspension-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/guarded-suspension/etc/guarded-suspension-sequence-diagram.png -------------------------------------------------------------------------------- /guarded-suspension/etc/guarded-suspension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/guarded-suspension/etc/guarded-suspension.png -------------------------------------------------------------------------------- /guarded-suspension/etc/guarded-suspension.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package com.iluwatar.guarded.suspension { 3 | class App { 4 | + App() 5 | + main(args : String[]) {static} 6 | } 7 | class GuardedQueue { 8 | - LOGGER : Logger {static} 9 | - sourceList : Queue 10 | + GuardedQueue() 11 | + get() : Integer 12 | + put(e : Integer) 13 | } 14 | } 15 | @enduml -------------------------------------------------------------------------------- /half-sync-half-async/etc/half-sync-half-async-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/half-sync-half-async/etc/half-sync-half-async-sequence-diagram.png -------------------------------------------------------------------------------- /half-sync-half-async/etc/half-sync-half-async.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/half-sync-half-async/etc/half-sync-half-async.png -------------------------------------------------------------------------------- /health-check/etc/health-check-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/health-check/etc/health-check-sequence-diagram.png -------------------------------------------------------------------------------- /health-check/etc/health-check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/health-check/etc/health-check.png -------------------------------------------------------------------------------- /hexagonal-architecture/etc/hexagonal-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/hexagonal-architecture/etc/hexagonal-architecture-diagram.png -------------------------------------------------------------------------------- /hexagonal-architecture/etc/hexagonal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/hexagonal-architecture/etc/hexagonal.png -------------------------------------------------------------------------------- /identity-map/etc/IdentityMap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/identity-map/etc/IdentityMap.png -------------------------------------------------------------------------------- /identity-map/etc/identity-map-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/identity-map/etc/identity-map-sequence-diagram.png -------------------------------------------------------------------------------- /intercepting-filter/etc/intercepting-filter-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/intercepting-filter/etc/intercepting-filter-architecture-diagram.png -------------------------------------------------------------------------------- /intercepting-filter/etc/intercepting-filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/intercepting-filter/etc/intercepting-filter.png -------------------------------------------------------------------------------- /interpreter/etc/interpreter-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/interpreter/etc/interpreter-sequence-diagram.png -------------------------------------------------------------------------------- /interpreter/etc/interpreter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/interpreter/etc/interpreter.png -------------------------------------------------------------------------------- /interpreter/etc/interpreter_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/interpreter/etc/interpreter_1.png -------------------------------------------------------------------------------- /iterator/etc/bst.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/iterator/etc/bst.jpg -------------------------------------------------------------------------------- /iterator/etc/iterator-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/iterator/etc/iterator-sequence-diagram.png -------------------------------------------------------------------------------- /iterator/etc/iterator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/iterator/etc/iterator.png -------------------------------------------------------------------------------- /iterator/etc/iterator_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/iterator/etc/iterator_1.png -------------------------------------------------------------------------------- /layered-architecture/etc/layered-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/layered-architecture/etc/layered-architecture-diagram.png -------------------------------------------------------------------------------- /layered-architecture/etc/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/layered-architecture/etc/layers.png -------------------------------------------------------------------------------- /layered-architecture/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | spring.main.web-application-type=none 3 | 4 | #datasource settings 5 | spring.datasource.url=jdbc:h2:mem:databases-cake 6 | spring.datasource.driverClassName=org.h2.Driver 7 | spring.datasource.username=sa 8 | spring.datasource.password=sa 9 | 10 | #data settings 11 | spring.jpa.database-platform=org.hibernate.dialect.H2Dialect 12 | spring.jpa.hibernate.ddl-auto=create-drop 13 | -------------------------------------------------------------------------------- /lazy-loading/etc/lazy-loading-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/lazy-loading/etc/lazy-loading-sequence-diagram.png -------------------------------------------------------------------------------- /lazy-loading/etc/lazy-loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/lazy-loading/etc/lazy-loading.png -------------------------------------------------------------------------------- /leader-election/etc/leader-election-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/leader-election/etc/leader-election-sequence-diagram.png -------------------------------------------------------------------------------- /leader-election/etc/leader-election.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/leader-election/etc/leader-election.urm.png -------------------------------------------------------------------------------- /leader-followers/etc/leader-followers-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/leader-followers/etc/leader-followers-sequence-diagram.png -------------------------------------------------------------------------------- /leader-followers/etc/leader-followers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/leader-followers/etc/leader-followers.png -------------------------------------------------------------------------------- /localization/ar/abstract-document/etc/abstract-document.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/abstract-document/etc/abstract-document.png -------------------------------------------------------------------------------- /localization/ar/abstract-factory/etc/abstract-factory.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/abstract-factory/etc/abstract-factory.urm.png -------------------------------------------------------------------------------- /localization/ar/active-object/etc/active-object.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/active-object/etc/active-object.urm.png -------------------------------------------------------------------------------- /localization/ar/acyclic-visitor/etc/acyclic-visitor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/acyclic-visitor/etc/acyclic-visitor.png -------------------------------------------------------------------------------- /localization/ar/adapter/etc/adapter.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/adapter/etc/adapter.urm.png -------------------------------------------------------------------------------- /localization/ar/aggregator-microservices/aggregator-service/etc/aggregator-service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/aggregator-microservices/aggregator-service/etc/aggregator-service.png -------------------------------------------------------------------------------- /localization/ar/ambassador/etc/ambassador.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/ambassador/etc/ambassador.urm.png -------------------------------------------------------------------------------- /localization/ar/api-gateway/etc/api-gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/api-gateway/etc/api-gateway.png -------------------------------------------------------------------------------- /localization/ar/async-method-invocation/etc/async-method-invocation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/async-method-invocation/etc/async-method-invocation.png -------------------------------------------------------------------------------- /localization/ar/balking/etc/balking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/balking/etc/balking.png -------------------------------------------------------------------------------- /localization/ar/bridge/etc/bridge.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/bridge/etc/bridge.urm.png -------------------------------------------------------------------------------- /localization/ar/builder/etc/builder.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/builder/etc/builder.urm.png -------------------------------------------------------------------------------- /localization/ar/business-delegate/etc/business-delegate.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/business-delegate/etc/business-delegate.urm.png -------------------------------------------------------------------------------- /localization/ar/bytecode/etc/bytecode.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/bytecode/etc/bytecode.urm.png -------------------------------------------------------------------------------- /localization/ar/chain-of-responsibility/etc/chain-of-responsibility.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/chain-of-responsibility/etc/chain-of-responsibility.urm.png -------------------------------------------------------------------------------- /localization/ar/client-session/etc/session_state_pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/client-session/etc/session_state_pattern.png -------------------------------------------------------------------------------- /localization/ar/collecting-parameter/etc/collecting-parameter.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/collecting-parameter/etc/collecting-parameter.urm.png -------------------------------------------------------------------------------- /localization/ar/command/etc/command.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/command/etc/command.png -------------------------------------------------------------------------------- /localization/ar/commander/etc/commander.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/commander/etc/commander.urm.png -------------------------------------------------------------------------------- /localization/ar/composite-entity/etc/composite_entity.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/composite-entity/etc/composite_entity.urm.png -------------------------------------------------------------------------------- /localization/ar/composite-view/etc/composite_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/composite-view/etc/composite_view.png -------------------------------------------------------------------------------- /localization/ar/composite-view/etc/images/noparam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/composite-view/etc/images/noparam.png -------------------------------------------------------------------------------- /localization/ar/composite-view/etc/images/threeparams.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/composite-view/etc/images/threeparams.png -------------------------------------------------------------------------------- /localization/ar/composite/etc/composite.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/composite/etc/composite.urm.png -------------------------------------------------------------------------------- /localization/ar/context-object/etc/context-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/context-object/etc/context-object.png -------------------------------------------------------------------------------- /localization/ar/converter/etc/converter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/converter/etc/converter.png -------------------------------------------------------------------------------- /localization/ar/crtp/etc/crtp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/crtp/etc/crtp.png -------------------------------------------------------------------------------- /localization/ar/data-locality/etc/data-locality.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/data-locality/etc/data-locality.urm.png -------------------------------------------------------------------------------- /localization/ar/decorator/etc/decorator.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/decorator/etc/decorator.urm.png -------------------------------------------------------------------------------- /localization/ar/delegation/etc/delegation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/delegation/etc/delegation.png -------------------------------------------------------------------------------- /localization/ar/dependency-injection/etc/dependency-injection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/dependency-injection/etc/dependency-injection.png -------------------------------------------------------------------------------- /localization/ar/dirty-flag/etc/dirty-flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/dirty-flag/etc/dirty-flag.png -------------------------------------------------------------------------------- /localization/ar/double-buffer/etc/double-buffer.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/double-buffer/etc/double-buffer.urm.png -------------------------------------------------------------------------------- /localization/ar/embedded-value/etc/embedded-value.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/embedded-value/etc/embedded-value.urm.png -------------------------------------------------------------------------------- /localization/ar/event-aggregator/etc/classes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/event-aggregator/etc/classes.png -------------------------------------------------------------------------------- /localization/ar/extension-objects/etc/extension_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/extension-objects/etc/extension_obj.png -------------------------------------------------------------------------------- /localization/ar/facade/etc/facade.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/facade/etc/facade.urm.png -------------------------------------------------------------------------------- /localization/ar/factory/etc/factory.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ar/factory/etc/factory.urm.png -------------------------------------------------------------------------------- /localization/de/abstract-document/etc/abstract-document.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/de/abstract-document/etc/abstract-document.png -------------------------------------------------------------------------------- /localization/es/abstract-document/etc/abstract-document.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/abstract-document/etc/abstract-document.png -------------------------------------------------------------------------------- /localization/es/abstract-factory/etc/abstract-factory.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/abstract-factory/etc/abstract-factory.urm.png -------------------------------------------------------------------------------- /localization/es/active-object/etc/active-object.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/active-object/etc/active-object.urm.png -------------------------------------------------------------------------------- /localization/es/acyclic-visitor/etc/acyclic-visitor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/acyclic-visitor/etc/acyclic-visitor.png -------------------------------------------------------------------------------- /localization/es/adapter/etc/adapter.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/adapter/etc/adapter.urm.png -------------------------------------------------------------------------------- /localization/es/aggregator-microservices/aggregator-service/etc/aggregator-service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/aggregator-microservices/aggregator-service/etc/aggregator-service.png -------------------------------------------------------------------------------- /localization/es/ambassador/etc/ambassador.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/ambassador/etc/ambassador.urm.png -------------------------------------------------------------------------------- /localization/es/api-gateway/etc/api-gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/api-gateway/etc/api-gateway.png -------------------------------------------------------------------------------- /localization/es/async-method-invocation/etc/async-method-invocation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/async-method-invocation/etc/async-method-invocation.png -------------------------------------------------------------------------------- /localization/es/balking/etc/balking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/balking/etc/balking.png -------------------------------------------------------------------------------- /localization/es/bridge/etc/bridge.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/bridge/etc/bridge.urm.png -------------------------------------------------------------------------------- /localization/es/builder/etc/builder.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/builder/etc/builder.urm.png -------------------------------------------------------------------------------- /localization/es/business-delegate/etc/business-delegate.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/business-delegate/etc/business-delegate.urm.png -------------------------------------------------------------------------------- /localization/es/bytecode/etc/bytecode.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/bytecode/etc/bytecode.urm.png -------------------------------------------------------------------------------- /localization/es/chain-of-responsibility/etc/chain-of-responsibility.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/chain-of-responsibility/etc/chain-of-responsibility.urm.png -------------------------------------------------------------------------------- /localization/es/client-session/etc/session_state_pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/client-session/etc/session_state_pattern.png -------------------------------------------------------------------------------- /localization/es/collecting-parameter/etc/collecting-parameter.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/collecting-parameter/etc/collecting-parameter.urm.png -------------------------------------------------------------------------------- /localization/es/command/etc/command.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/command/etc/command.png -------------------------------------------------------------------------------- /localization/es/commander/etc/commander.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/commander/etc/commander.urm.png -------------------------------------------------------------------------------- /localization/es/composite-entity/etc/composite_entity.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/composite-entity/etc/composite_entity.urm.png -------------------------------------------------------------------------------- /localization/es/composite-view/etc/composite_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/composite-view/etc/composite_view.png -------------------------------------------------------------------------------- /localization/es/composite-view/etc/images/noparam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/composite-view/etc/images/noparam.png -------------------------------------------------------------------------------- /localization/es/composite-view/etc/images/threeparams.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/composite-view/etc/images/threeparams.png -------------------------------------------------------------------------------- /localization/es/composite/etc/composite.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/composite/etc/composite.urm.png -------------------------------------------------------------------------------- /localization/es/context-object/etc/context-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/context-object/etc/context-object.png -------------------------------------------------------------------------------- /localization/es/converter/etc/converter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/converter/etc/converter.png -------------------------------------------------------------------------------- /localization/es/crtp/etc/crtp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/crtp/etc/crtp.png -------------------------------------------------------------------------------- /localization/es/data-locality/etc/data-locality.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/data-locality/etc/data-locality.urm.png -------------------------------------------------------------------------------- /localization/es/decorator/etc/decorator.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/decorator/etc/decorator.urm.png -------------------------------------------------------------------------------- /localization/es/delegation/etc/delegation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/delegation/etc/delegation.png -------------------------------------------------------------------------------- /localization/es/dependency-injection/etc/dependency-injection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/dependency-injection/etc/dependency-injection.png -------------------------------------------------------------------------------- /localization/es/dirty-flag/etc/dirty-flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/dirty-flag/etc/dirty-flag.png -------------------------------------------------------------------------------- /localization/es/double-buffer/etc/double-buffer.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/double-buffer/etc/double-buffer.urm.png -------------------------------------------------------------------------------- /localization/es/embedded-value/etc/embedded-value.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/embedded-value/etc/embedded-value.urm.png -------------------------------------------------------------------------------- /localization/es/event-aggregator/etc/classes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/event-aggregator/etc/classes.png -------------------------------------------------------------------------------- /localization/es/extension-objects/etc/extension_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/extension-objects/etc/extension_obj.png -------------------------------------------------------------------------------- /localization/es/facade/etc/facade.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/facade/etc/facade.urm.png -------------------------------------------------------------------------------- /localization/es/factory-kit/etc/factory-kit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/factory-kit/etc/factory-kit.png -------------------------------------------------------------------------------- /localization/es/factory-method/etc/factory-method.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/factory-method/etc/factory-method.urm.png -------------------------------------------------------------------------------- /localization/es/factory/etc/factory.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/factory/etc/factory.urm.png -------------------------------------------------------------------------------- /localization/es/feature-toggle/etc/feature-toggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/feature-toggle/etc/feature-toggle.png -------------------------------------------------------------------------------- /localization/es/flux/etc/flux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/flux/etc/flux.png -------------------------------------------------------------------------------- /localization/es/flyweight/etc/flyweight.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/flyweight/etc/flyweight.urm.png -------------------------------------------------------------------------------- /localization/es/front-controller/etc/front-controller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/front-controller/etc/front-controller.png -------------------------------------------------------------------------------- /localization/es/game-loop/etc/game-loop.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/game-loop/etc/game-loop.urm.png -------------------------------------------------------------------------------- /localization/es/gateway/etc/gateway.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/gateway/etc/gateway.urm.png -------------------------------------------------------------------------------- /localization/es/health-check/etc/health-check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/health-check/etc/health-check.png -------------------------------------------------------------------------------- /localization/es/identity-map/etc/IdentityMap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/identity-map/etc/IdentityMap.png -------------------------------------------------------------------------------- /localization/es/intercepting-filter/etc/intercepting-filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/intercepting-filter/etc/intercepting-filter.png -------------------------------------------------------------------------------- /localization/es/interpreter/etc/interpreter_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/interpreter/etc/interpreter_1.png -------------------------------------------------------------------------------- /localization/es/iterator/etc/iterator_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/iterator/etc/iterator_1.png -------------------------------------------------------------------------------- /localization/es/layers/etc/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/layers/etc/layers.png -------------------------------------------------------------------------------- /localization/es/lazy-loading/etc/lazy-loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/lazy-loading/etc/lazy-loading.png -------------------------------------------------------------------------------- /localization/es/leader-election/etc/leader-election.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/leader-election/etc/leader-election.urm.png -------------------------------------------------------------------------------- /localization/es/marker/etc/MarkerDiagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/marker/etc/MarkerDiagram.png -------------------------------------------------------------------------------- /localization/es/mediator/etc/mediator_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/mediator/etc/mediator_1.png -------------------------------------------------------------------------------- /localization/es/memento/etc/memento.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/memento/etc/memento.png -------------------------------------------------------------------------------- /localization/es/module/etc/module.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/module/etc/module.png -------------------------------------------------------------------------------- /localization/es/monostate/etc/monostate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/monostate/etc/monostate.png -------------------------------------------------------------------------------- /localization/es/multiton/etc/multiton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/multiton/etc/multiton.png -------------------------------------------------------------------------------- /localization/es/null-object/etc/null-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/null-object/etc/null-object.png -------------------------------------------------------------------------------- /localization/es/object-mother/etc/object-mother.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/object-mother/etc/object-mother.png -------------------------------------------------------------------------------- /localization/es/object-pool/etc/object-pool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/object-pool/etc/object-pool.png -------------------------------------------------------------------------------- /localization/es/observer/etc/observer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/observer/etc/observer.png -------------------------------------------------------------------------------- /localization/es/page-controller/etc/page-controller.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/page-controller/etc/page-controller.urm.png -------------------------------------------------------------------------------- /localization/es/page-object/etc/page-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/page-object/etc/page-object.png -------------------------------------------------------------------------------- /localization/es/parameter-object/etc/parameter-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/parameter-object/etc/parameter-object.png -------------------------------------------------------------------------------- /localization/es/partial-response/etc/partial-response.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/partial-response/etc/partial-response.urm.png -------------------------------------------------------------------------------- /localization/es/pipeline/etc/pipeline.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/pipeline/etc/pipeline.urm.png -------------------------------------------------------------------------------- /localization/es/poison-pill/etc/poison-pill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/poison-pill/etc/poison-pill.png -------------------------------------------------------------------------------- /localization/es/presentation-model/etc/presentation-model.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/presentation-model/etc/presentation-model.urm.png -------------------------------------------------------------------------------- /localization/es/presentation-model/etc/result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/presentation-model/etc/result.png -------------------------------------------------------------------------------- /localization/es/priority-queue/etc/priority-queue.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/priority-queue/etc/priority-queue.urm.png -------------------------------------------------------------------------------- /localization/es/property/etc/property.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/property/etc/property.png -------------------------------------------------------------------------------- /localization/es/prototype/etc/prototype.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/prototype/etc/prototype.urm.png -------------------------------------------------------------------------------- /localization/es/proxy/etc/proxy.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/proxy/etc/proxy.urm.png -------------------------------------------------------------------------------- /localization/es/registry/etc/registry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/registry/etc/registry.png -------------------------------------------------------------------------------- /localization/es/retry/etc/retry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/retry/etc/retry.png -------------------------------------------------------------------------------- /localization/es/role-object/etc/role-object.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/role-object/etc/role-object.urm.png -------------------------------------------------------------------------------- /localization/es/separated-interface/etc/class_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/separated-interface/etc/class_diagram.png -------------------------------------------------------------------------------- /localization/es/servant/etc/servant-pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/servant/etc/servant-pattern.png -------------------------------------------------------------------------------- /localization/es/sharding/etc/sharding.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/sharding/etc/sharding.urm.png -------------------------------------------------------------------------------- /localization/es/single-table-inheritance/etc/single-table-inheritance.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/single-table-inheritance/etc/single-table-inheritance.urm.png -------------------------------------------------------------------------------- /localization/es/singleton/etc/singleton.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/singleton/etc/singleton.urm.png -------------------------------------------------------------------------------- /localization/es/spatial-partition/etc/spatial-partition.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/spatial-partition/etc/spatial-partition.urm.png -------------------------------------------------------------------------------- /localization/es/special-case/etc/special_case_urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/special-case/etc/special_case_urm.png -------------------------------------------------------------------------------- /localization/es/specification/etc/specification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/specification/etc/specification.png -------------------------------------------------------------------------------- /localization/es/state/etc/state_urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/state/etc/state_urm.png -------------------------------------------------------------------------------- /localization/es/step-builder/etc/step-builder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/step-builder/etc/step-builder.png -------------------------------------------------------------------------------- /localization/es/strangler/etc/strangler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/strangler/etc/strangler.png -------------------------------------------------------------------------------- /localization/es/strategy/etc/strategy_urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/strategy/etc/strategy_urm.png -------------------------------------------------------------------------------- /localization/es/subclass-sandbox/etc/subclass-sandbox.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/subclass-sandbox/etc/subclass-sandbox.urm.png -------------------------------------------------------------------------------- /localization/es/table-module/etc/table-module.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/table-module/etc/table-module.urm.png -------------------------------------------------------------------------------- /localization/es/template-method/etc/template_method_urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/template-method/etc/template_method_urm.png -------------------------------------------------------------------------------- /localization/es/throttling/etc/throttling_urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/throttling/etc/throttling_urm.png -------------------------------------------------------------------------------- /localization/es/trampoline/etc/trampoline.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/trampoline/etc/trampoline.urm.png -------------------------------------------------------------------------------- /localization/es/transaction-script/etc/transaction-script.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/transaction-script/etc/transaction-script.png -------------------------------------------------------------------------------- /localization/es/twin/etc/twin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/twin/etc/twin.png -------------------------------------------------------------------------------- /localization/es/typeobjectpattern/etc/typeobjectpattern.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/typeobjectpattern/etc/typeobjectpattern.urm.png -------------------------------------------------------------------------------- /localization/es/update-method/etc/update-method.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/update-method/etc/update-method.urm.png -------------------------------------------------------------------------------- /localization/es/value-object/etc/value-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/value-object/etc/value-object.png -------------------------------------------------------------------------------- /localization/es/visitor/etc/visitor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/visitor/etc/visitor.png -------------------------------------------------------------------------------- /localization/es/visitor/etc/visitor_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/es/visitor/etc/visitor_1.png -------------------------------------------------------------------------------- /localization/fa/abstract-document/etc/abstract-document.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/fa/abstract-document/etc/abstract-document.png -------------------------------------------------------------------------------- /localization/fa/active-object/etc/active-object-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/fa/active-object/etc/active-object-sequence-diagram.png -------------------------------------------------------------------------------- /localization/fa/active-object/etc/active-object.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/fa/active-object/etc/active-object.urm.png -------------------------------------------------------------------------------- /localization/fa/active-object/etc/active-object.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package com.iluwatar.activeobject { 3 | abstract class ActiveCreature { 4 | - logger : Logger 5 | - name : String 6 | - requests : BlockingQueue 7 | - thread : Thread 8 | + ActiveCreature(name : String) 9 | + eat() 10 | + name() : String 11 | + roam() 12 | } 13 | class App { 14 | - creatures : Integer 15 | - logger : Logger 16 | + App() 17 | + main(args : String[]) {static} 18 | + run() 19 | } 20 | class Orc { 21 | + Orc(name : String) 22 | } 23 | } 24 | Orc --|> ActiveCreature 25 | @enduml -------------------------------------------------------------------------------- /localization/fa/factory/etc/factory-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/fa/factory/etc/factory-sequence-diagram.png -------------------------------------------------------------------------------- /localization/id/decorator/etc/decorator.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/id/decorator/etc/decorator.urm.png -------------------------------------------------------------------------------- /localization/ja/decorator/etc/decorator.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ja/decorator/etc/decorator.urm.png -------------------------------------------------------------------------------- /localization/ko/adapter/etc/adapter.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ko/adapter/etc/adapter.urm.png -------------------------------------------------------------------------------- /localization/ko/builder/etc/builder.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ko/builder/etc/builder.urm.png -------------------------------------------------------------------------------- /localization/ko/callback/etc/callback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ko/callback/etc/callback.png -------------------------------------------------------------------------------- /localization/ko/decorater/etc/decorator.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ko/decorater/etc/decorator.urm.png -------------------------------------------------------------------------------- /localization/ko/event-driven-architecture/etc/eda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ko/event-driven-architecture/etc/eda.png -------------------------------------------------------------------------------- /localization/ko/event-sourcing/etc/event-sourcing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ko/event-sourcing/etc/event-sourcing.png -------------------------------------------------------------------------------- /localization/ko/facade/etc/facade.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ko/facade/etc/facade.urm.png -------------------------------------------------------------------------------- /localization/ko/factory-method/etc/factory-method.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ko/factory-method/etc/factory-method.urm.png -------------------------------------------------------------------------------- /localization/ko/factory/etc/factory.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ko/factory/etc/factory.urm.png -------------------------------------------------------------------------------- /localization/ko/iterator/etc/iterator_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ko/iterator/etc/iterator_1.png -------------------------------------------------------------------------------- /localization/ko/observer/etc/observer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ko/observer/etc/observer.png -------------------------------------------------------------------------------- /localization/ko/prototype/etc/prototype.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ko/prototype/etc/prototype.urm.png -------------------------------------------------------------------------------- /localization/ko/proxy/etc/proxy.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ko/proxy/etc/proxy.urm.png -------------------------------------------------------------------------------- /localization/ko/singleton/etc/singleton.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ko/singleton/etc/singleton.urm.png -------------------------------------------------------------------------------- /localization/ko/strategy/etc/strategy_urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ko/strategy/etc/strategy_urm.png -------------------------------------------------------------------------------- /localization/ko/template-method/etc/template_method_urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ko/template-method/etc/template_method_urm.png -------------------------------------------------------------------------------- /localization/ko/visitor/etc/visitor_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/ko/visitor/etc/visitor_1.png -------------------------------------------------------------------------------- /localization/tr/singleton/etc/singleton.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/tr/singleton/etc/singleton.urm.png -------------------------------------------------------------------------------- /localization/zh/abstract-document/etc/abstract-document.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/abstract-document/etc/abstract-document.png -------------------------------------------------------------------------------- /localization/zh/abstract-factory/etc/abstract-factory.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/abstract-factory/etc/abstract-factory.urm.png -------------------------------------------------------------------------------- /localization/zh/active-object/etc/active-object.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/active-object/etc/active-object.urm.png -------------------------------------------------------------------------------- /localization/zh/acyclic-visitor/etc/acyclic-visitor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/acyclic-visitor/etc/acyclic-visitor.png -------------------------------------------------------------------------------- /localization/zh/adapter/etc/adapter.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/adapter/etc/adapter.urm.png -------------------------------------------------------------------------------- /localization/zh/aggregator-microservices/etc/aggregator-service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/aggregator-microservices/etc/aggregator-service.png -------------------------------------------------------------------------------- /localization/zh/ambassador/etc/ambassador.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/ambassador/etc/ambassador.urm.png -------------------------------------------------------------------------------- /localization/zh/api-gateway/etc/api-gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/api-gateway/etc/api-gateway.png -------------------------------------------------------------------------------- /localization/zh/async-method-invocation/etc/async-method-invocation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/async-method-invocation/etc/async-method-invocation.png -------------------------------------------------------------------------------- /localization/zh/balking/etc/balking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/balking/etc/balking.png -------------------------------------------------------------------------------- /localization/zh/bridge/etc/bridge.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/bridge/etc/bridge.urm.png -------------------------------------------------------------------------------- /localization/zh/builder/etc/builder.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/builder/etc/builder.urm.png -------------------------------------------------------------------------------- /localization/zh/business-delegate/etc/business-delegate.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/business-delegate/etc/business-delegate.urm.png -------------------------------------------------------------------------------- /localization/zh/bytecode/etc/bytecode.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/bytecode/etc/bytecode.urm.png -------------------------------------------------------------------------------- /localization/zh/caching/etc/caching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/caching/etc/caching.png -------------------------------------------------------------------------------- /localization/zh/callback/etc/callback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/callback/etc/callback.png -------------------------------------------------------------------------------- /localization/zh/chain/etc/chain-of-responsibility.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/chain/etc/chain-of-responsibility.urm.png -------------------------------------------------------------------------------- /localization/zh/circuit-breaker/etc/ServiceDiagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/circuit-breaker/etc/ServiceDiagram.png -------------------------------------------------------------------------------- /localization/zh/circuit-breaker/etc/StateDiagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/circuit-breaker/etc/StateDiagram.png -------------------------------------------------------------------------------- /localization/zh/circuit-breaker/etc/circuit-breaker.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/circuit-breaker/etc/circuit-breaker.urm.png -------------------------------------------------------------------------------- /localization/zh/cloud-static-content-hosting/etc/static-content-hosting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/cloud-static-content-hosting/etc/static-content-hosting.png -------------------------------------------------------------------------------- /localization/zh/collection-pipeline/etc/collection-pipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/collection-pipeline/etc/collection-pipeline.png -------------------------------------------------------------------------------- /localization/zh/combinator/etc/combinator.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/combinator/etc/combinator.urm.png -------------------------------------------------------------------------------- /localization/zh/command/etc/command.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/command/etc/command.png -------------------------------------------------------------------------------- /localization/zh/commander/etc/commander.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/commander/etc/commander.urm.png -------------------------------------------------------------------------------- /localization/zh/composite-entity/etc/composite_entity.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/composite-entity/etc/composite_entity.urm.png -------------------------------------------------------------------------------- /localization/zh/composite/etc/composite.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/composite/etc/composite.urm.png -------------------------------------------------------------------------------- /localization/zh/converter/etc/converter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/converter/etc/converter.png -------------------------------------------------------------------------------- /localization/zh/crtp/etc/crtp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/crtp/etc/crtp.png -------------------------------------------------------------------------------- /localization/zh/dao/etc/dao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/dao/etc/dao.png -------------------------------------------------------------------------------- /localization/zh/data-bus/etc/data-bus.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/data-bus/etc/data-bus.urm.png -------------------------------------------------------------------------------- /localization/zh/data-mapper/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Data Mapper 3 | shortTitle: Data Mapper 4 | category: Architectural 5 | language: zh 6 | tag: 7 | - Decoupling 8 | --- 9 | 10 | ## 含义 11 | 一个用于在持久化对象和数据库之间传输数据的映射器,同时保持它们之间和映射器本身的独立性。 12 | 13 | ## 类图 14 | ![alt text](./etc/data-mapper.png "Data Mapper") 15 | 16 | ## 适用场景 17 | 数据映射器适用于以下场景: 18 | 19 | * 当你想把数据对象从数据库访问层解耦时时 20 | * 当你想编写多个数据查询/持久化实现时 21 | 22 | ## 引用 23 | 24 | * [Data Mapper](http://richard.jp.leguen.ca/tutoring/soen343-f2010/tutorials/implementing-data-mapper/) -------------------------------------------------------------------------------- /localization/zh/data-mapper/etc/data-mapper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/data-mapper/etc/data-mapper.png -------------------------------------------------------------------------------- /localization/zh/data-transfer-object/etc/data-transfer-object.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/data-transfer-object/etc/data-transfer-object.urm.png -------------------------------------------------------------------------------- /localization/zh/decorator/etc/decorator.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/decorator/etc/decorator.urm.png -------------------------------------------------------------------------------- /localization/zh/delegation/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Delegation 3 | shortTitle: Delegation 4 | category: Structural 5 | language: zh 6 | tag: 7 | - Decoupling 8 | --- 9 | 10 | ## 或称 11 | 代理模式 12 | 13 | ## 目的 14 | 它是一种让对象将某种行为向外部表达,但实际上将实现该行为的责任委托给关联对象的技术。 15 | 16 | ## 类图 17 | ![alt text](./etc/delegation.png "Delegate") 18 | 19 | ## 适用性 20 | 使用委托模式以实现以下目的 21 | 22 | * 降低类的耦合性 23 | * 组件的行为相同,但是意识到这种情况将来可能会改变。 24 | 25 | ## 鸣谢 26 | 27 | * [Delegate Pattern: Wikipedia ](https://en.wikipedia.org/wiki/Delegation_pattern) 28 | * [Proxy Pattern: Wikipedia ](https://en.wikipedia.org/wiki/Proxy_pattern) 29 | -------------------------------------------------------------------------------- /localization/zh/delegation/etc/delegation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/delegation/etc/delegation.png -------------------------------------------------------------------------------- /localization/zh/dependency-injection/etc/dependency-injection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/dependency-injection/etc/dependency-injection.png -------------------------------------------------------------------------------- /localization/zh/dirty-flag/etc/dirty-flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/dirty-flag/etc/dirty-flag.png -------------------------------------------------------------------------------- /localization/zh/double-checked-locking/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Double Checked Locking 3 | shortTitle: Double Checked Locking 4 | category: Idiom 5 | language: zh 6 | tag: 7 | - Performance 8 | --- 9 | 10 | ## 含义 11 | 通过先测试锁定标准("锁提示")而不实际获取锁的方式来减少获取锁的开销。只有当锁定标准检查表明需要锁定时,才进行实际的锁定逻辑。 12 | 13 | ## 类图 14 | ![alt text](./etc/double_checked_locking_1.png "Double Checked Locking") 15 | 16 | ## 适用场景 17 | 在以下场景适合使用双重锁检查模式: 18 | 19 | * 在创建对象时有存在并发的访问。如单例模式中,你想创建同一个类的单个实例,如果存在两个或更多的线程对实例进行判空,仅仅检查该该实例是否为空可能是不够的。 20 | * 在一个方法上存在并发访问,该方法的行为是根据一些约束条件而改变,而这些约束条件在该方法中也会发生变化。 -------------------------------------------------------------------------------- /localization/zh/double-checked-locking/etc/double_checked_locking_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/double-checked-locking/etc/double_checked_locking_1.png -------------------------------------------------------------------------------- /localization/zh/facade/etc/facade.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/facade/etc/facade.urm.png -------------------------------------------------------------------------------- /localization/zh/factory-kit/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Factory Kit 3 | shortTitle: Factory Kit 4 | category: Creational 5 | language: zh 6 | tag: 7 | - Extensibility 8 | --- 9 | 10 | ## 含义 11 | 使用分离的构建器和工厂接口来定义一个不可变内容的工厂。 12 | 13 | ## 类图 14 | ![alt text](./etc/factory-kit.png "Factory Kit") 15 | 16 | ## 适用场景 17 | 工厂套件模式适用于与以下场景: 18 | 19 | * 一个类无法预知它需要创建的对象的类别 20 | - 你只是想要一个新的自定义构建器(builder)的实例,而非全局的构建器 21 | - 你明确地想要定义对象的类型,而且工厂可以创建这些对象 22 | - 你想要分离构建器(builder)和创建器(creator)接口 23 | 24 | ## 引用 25 | 26 | * [Design Pattern Reloaded by Remi Forax: ](https://www.youtube.com/watch?v=-k2X7guaArU) -------------------------------------------------------------------------------- /localization/zh/factory-kit/etc/factory-kit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/factory-kit/etc/factory-kit.png -------------------------------------------------------------------------------- /localization/zh/factory-method/etc/factory-method.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/factory-method/etc/factory-method.urm.png -------------------------------------------------------------------------------- /localization/zh/factory/etc/factory.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/factory/etc/factory.urm.png -------------------------------------------------------------------------------- /localization/zh/interpreter/etc/interpreter_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/interpreter/etc/interpreter_1.png -------------------------------------------------------------------------------- /localization/zh/iterator/etc/iterator_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/iterator/etc/iterator_1.png -------------------------------------------------------------------------------- /localization/zh/monitor/etc/monitor.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/monitor/etc/monitor.urm.png -------------------------------------------------------------------------------- /localization/zh/observer/etc/observer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/observer/etc/observer.png -------------------------------------------------------------------------------- /localization/zh/private-class-data/etc/private-class-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/private-class-data/etc/private-class-data.png -------------------------------------------------------------------------------- /localization/zh/producer-consumer/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Producer Consumer 3 | shortTitle: Producer Consumer 4 | category: Concurrency 5 | language: zh 6 | tag: 7 | - Reactive 8 | --- 9 | 10 | ## 目的 11 | 生产者消费者设计模式是一种经典的并发模式,通过将工作与执行工作任务分开来减少生产者与消费者之间的耦合。 12 | 13 | ## 类图 14 | ![alt text](./etc/producer-consumer.png "Producer Consumer") 15 | 16 | ## 适用性 17 | 在以下情况下使用生产者消费者 18 | 19 | * 通过将工作分成生产和消费两个工作进程来解耦系统 20 | * 解决生产工作和消费工作需要不同时间的问题 21 | -------------------------------------------------------------------------------- /localization/zh/producer-consumer/etc/producer-consumer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/producer-consumer/etc/producer-consumer.png -------------------------------------------------------------------------------- /localization/zh/proxy/etc/proxy.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/proxy/etc/proxy.urm.png -------------------------------------------------------------------------------- /localization/zh/servant/etc/servant-pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/servant/etc/servant-pattern.png -------------------------------------------------------------------------------- /localization/zh/sharding/etc/sharding.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/sharding/etc/sharding.urm.png -------------------------------------------------------------------------------- /localization/zh/singleton/etc/singleton.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/singleton/etc/singleton.urm.png -------------------------------------------------------------------------------- /localization/zh/state/etc/state_urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/state/etc/state_urm.png -------------------------------------------------------------------------------- /localization/zh/step-builder/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Step Builder 3 | shortTitle: Step Builder 4 | category: Creational 5 | language: zn 6 | tag: 7 | - Instantiation 8 | --- 9 | 10 | ## 又被称为 11 | 分步构建 12 | 13 | ## 目的 14 | 这是构建者模式的一个扩展,完全指导用户创建对象,没有混淆的机会。 15 | 用户体验会大大提升,因为他只能看到下一个步骤的方法,直到适当的时机才会出现构建对象的“build”方法。 16 | 17 | ## 类图 18 | ![alt text](./etc/step-builder.png "Step Builder") 19 | 20 | ## 应用 21 | 使用分布构建模式当创建复杂对象的算法需要独立于组成对象的部分以及它们的组装方式,且构造过程必须允许对象有不同的表示形式,并且在此过程中顺序很重要时。 22 | 23 | ## 鸣谢 24 | 25 | * [Marco Castigliego - Step Builder](http://rdafbn.blogspot.co.uk/2012/07/step-builder-pattern_28.html) 26 | -------------------------------------------------------------------------------- /localization/zh/step-builder/etc/step-builder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/step-builder/etc/step-builder.png -------------------------------------------------------------------------------- /localization/zh/strategy/etc/strategy_urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/strategy/etc/strategy_urm.png -------------------------------------------------------------------------------- /localization/zh/table-module/etc/table-module.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/table-module/etc/table-module.urm.png -------------------------------------------------------------------------------- /localization/zh/template-method/etc/template_method_urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/template-method/etc/template_method_urm.png -------------------------------------------------------------------------------- /localization/zh/trampoline/etc/trampoline_urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/trampoline/etc/trampoline_urm.png -------------------------------------------------------------------------------- /localization/zh/unit-of-work/etc/unit-of-work.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/unit-of-work/etc/unit-of-work.urm.png -------------------------------------------------------------------------------- /localization/zh/update-method/etc/update-method.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/update-method/etc/update-method.urm.png -------------------------------------------------------------------------------- /localization/zh/value-object/etc/value-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/value-object/etc/value-object.png -------------------------------------------------------------------------------- /localization/zh/version-number/etc/version-number.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/version-number/etc/version-number.urm.png -------------------------------------------------------------------------------- /localization/zh/visitor/etc/visitor_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/localization/zh/visitor/etc/visitor_1.png -------------------------------------------------------------------------------- /lockable-object/etc/lockable-object-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/lockable-object/etc/lockable-object-sequence-diagram.png -------------------------------------------------------------------------------- /lockable-object/etc/lockable-object.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/lockable-object/etc/lockable-object.urm.png -------------------------------------------------------------------------------- /lombok.config: -------------------------------------------------------------------------------- 1 | lombok.log.fieldName = LOGGER 2 | lombok.addLombokGeneratedAnnotation = true 3 | -------------------------------------------------------------------------------- /map-reduce/etc/map-reduce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/map-reduce/etc/map-reduce.png -------------------------------------------------------------------------------- /map-reduce/etc/mapreduce-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/map-reduce/etc/mapreduce-flowchart.png -------------------------------------------------------------------------------- /marker-interface/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | -------------------------------------------------------------------------------- /marker-interface/etc/MarkerDiagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/marker-interface/etc/MarkerDiagram.png -------------------------------------------------------------------------------- /marker-interface/etc/marker-interface-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/marker-interface/etc/marker-interface-flowchart.png -------------------------------------------------------------------------------- /marker-interface/etc/marker-interface.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | @enduml -------------------------------------------------------------------------------- /marker-interface/etc/marker.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | @enduml -------------------------------------------------------------------------------- /master-worker/etc/master-worker-pattern.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/master-worker/etc/master-worker-pattern.urm.png -------------------------------------------------------------------------------- /master-worker/etc/master-worker-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/master-worker/etc/master-worker-sequence-diagram.png -------------------------------------------------------------------------------- /mediator/etc/mediator-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/mediator/etc/mediator-sequence-diagram.png -------------------------------------------------------------------------------- /mediator/etc/mediator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/mediator/etc/mediator.png -------------------------------------------------------------------------------- /mediator/etc/mediator_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/mediator/etc/mediator_1.png -------------------------------------------------------------------------------- /memento/etc/memento-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/memento/etc/memento-sequence-diagram.png -------------------------------------------------------------------------------- /memento/etc/memento.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/memento/etc/memento.png -------------------------------------------------------------------------------- /metadata-mapping/etc/metadata-mapping-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/metadata-mapping/etc/metadata-mapping-flowchart.png -------------------------------------------------------------------------------- /metadata-mapping/etc/metamapping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/metadata-mapping/etc/metamapping.png -------------------------------------------------------------------------------- /microservices-aggregrator/aggregator-service/etc/aggregator-service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/microservices-aggregrator/aggregator-service/etc/aggregator-service.png -------------------------------------------------------------------------------- /microservices-aggregrator/etc/aggregator-microservices.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | @enduml -------------------------------------------------------------------------------- /microservices-aggregrator/etc/microservices-aggregator-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/microservices-aggregrator/etc/microservices-aggregator-architecture-diagram.png -------------------------------------------------------------------------------- /microservices-aggregrator/etc/microservices-aggregrator.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | @enduml -------------------------------------------------------------------------------- /microservices-aggregrator/information-microservice/etc/information-microservice.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package com.iluwatar.information.microservice { 3 | class InformationApplication { 4 | + InformationApplication() 5 | + main(args : String[]) {static} 6 | } 7 | class InformationController { 8 | + InformationController() 9 | + getProductTitle() : String 10 | } 11 | } 12 | @enduml -------------------------------------------------------------------------------- /microservices-aggregrator/inventory-microservice/etc/inventory-microservice.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package com.iluwatar.inventory.microservice { 3 | class InventoryApplication { 4 | + InventoryApplication() 5 | + main(args : String[]) {static} 6 | } 7 | class InventoryController { 8 | + InventoryController() 9 | + getProductInventories() : int 10 | } 11 | } 12 | @enduml -------------------------------------------------------------------------------- /microservices-api-gateway/etc/api-gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/microservices-api-gateway/etc/api-gateway.png -------------------------------------------------------------------------------- /microservices-api-gateway/etc/api-gateway.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | @enduml -------------------------------------------------------------------------------- /microservices-api-gateway/etc/microservices-api-gateway-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/microservices-api-gateway/etc/microservices-api-gateway-sequence-diagram.png -------------------------------------------------------------------------------- /microservices-api-gateway/etc/microservices-api-gateway.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | @enduml -------------------------------------------------------------------------------- /microservices-api-gateway/image-microservice/etc/image-microservice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/microservices-api-gateway/image-microservice/etc/image-microservice.png -------------------------------------------------------------------------------- /microservices-api-gateway/image-microservice/etc/image-microservice.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package com.iluwatar.image.microservice { 3 | class ImageApplication { 4 | + ImageApplication() 5 | + main(args : String[]) {static} 6 | } 7 | class ImageController { 8 | + ImageController() 9 | + getImagePath() : String 10 | } 11 | } 12 | @enduml -------------------------------------------------------------------------------- /microservices-api-gateway/price-microservice/etc/price-microservice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/microservices-api-gateway/price-microservice/etc/price-microservice.png -------------------------------------------------------------------------------- /microservices-api-gateway/price-microservice/etc/price-microservice.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package com.iluwatar.price.microservice { 3 | class PriceApplication { 4 | + PriceApplication() 5 | + main(args : String[]) {static} 6 | } 7 | class PriceController { 8 | + PriceController() 9 | + getPrice() : String 10 | } 11 | } 12 | @enduml -------------------------------------------------------------------------------- /microservices-client-side-ui-composition/etc/microservices-client-side-ui-composition-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/microservices-client-side-ui-composition/etc/microservices-client-side-ui-composition-sequence-diagram.png -------------------------------------------------------------------------------- /microservices-distributed-tracing/etc/microservices-distributed-tracing-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/microservices-distributed-tracing/etc/microservices-distributed-tracing-sequence-diagram.png -------------------------------------------------------------------------------- /microservices-distributed-tracing/etc/microservices-distributed-tracing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/microservices-distributed-tracing/etc/microservices-distributed-tracing.png -------------------------------------------------------------------------------- /microservices-distributed-tracing/order-microservice/etc/order-microservice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/microservices-distributed-tracing/order-microservice/etc/order-microservice.png -------------------------------------------------------------------------------- /microservices-distributed-tracing/order-microservice/etc/order-microservice.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !theme vibrant 3 | package com.iluwatar.microservices-distributed-tracing { 4 | package "Order Microservice" { 5 | class OrderController { 6 | +processOrder() 7 | } 8 | 9 | class OrderService { 10 | +validateProduct() 11 | +processPayment() 12 | } 13 | } 14 | } 15 | @enduml -------------------------------------------------------------------------------- /microservices-distributed-tracing/order-microservice/etc/order-microservice.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !theme vibrant 3 | package com.iluwatar.microservices-distributed-tracing { 4 | package "Order Microservice" { 5 | class OrderController { 6 | +processOrder() 7 | } 8 | 9 | class OrderService { 10 | +validateProduct() 11 | +processPayment() 12 | } 13 | } 14 | } 15 | @enduml -------------------------------------------------------------------------------- /microservices-distributed-tracing/payment-microservice/etc/payment-microservice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/microservices-distributed-tracing/payment-microservice/etc/payment-microservice.png -------------------------------------------------------------------------------- /microservices-distributed-tracing/payment-microservice/etc/payment-microservice.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !theme vibrant 3 | package com.iluwatar.microservices-distributed-tracing { 4 | 5 | package "Payment Microservice" { 6 | class PaymentController { 7 | +processPayment() 8 | } 9 | } 10 | } 11 | @enduml -------------------------------------------------------------------------------- /microservices-distributed-tracing/payment-microservice/etc/payment-microservice.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !theme vibrant 3 | package com.iluwatar.microservices-distributed-tracing { 4 | 5 | package "Payment Microservice" { 6 | class PaymentController { 7 | +processPayment() 8 | } 9 | } 10 | } 11 | @enduml -------------------------------------------------------------------------------- /microservices-distributed-tracing/product-microservice/etc/product-microservice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/microservices-distributed-tracing/product-microservice/etc/product-microservice.png -------------------------------------------------------------------------------- /microservices-distributed-tracing/product-microservice/etc/product-microservice.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !theme vibrant 3 | package com.iluwatar.microservices-distributed-tracing { 4 | package "Product Microservice" { 5 | class ProductController { 6 | +validateProduct() 7 | } 8 | } 9 | } 10 | @enduml -------------------------------------------------------------------------------- /microservices-distributed-tracing/product-microservice/etc/product-microservice.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !theme vibrant 3 | package com.iluwatar.microservices-distributed-tracing { 4 | package "Product Microservice" { 5 | class ProductController { 6 | +validateProduct() 7 | } 8 | } 9 | } 10 | @enduml -------------------------------------------------------------------------------- /microservices-idempotent-consumer/etc/microservices-idempotent-consumer-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/microservices-idempotent-consumer/etc/microservices-idempotent-consumer-flowchart.png -------------------------------------------------------------------------------- /microservices-log-aggregation/etc/log-aggregation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/microservices-log-aggregation/etc/log-aggregation.png -------------------------------------------------------------------------------- /microservices-log-aggregation/etc/microservices-log-aggregation-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/microservices-log-aggregation/etc/microservices-log-aggregation-flowchart.png -------------------------------------------------------------------------------- /model-view-controller/etc/model-view-controller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/model-view-controller/etc/model-view-controller.png -------------------------------------------------------------------------------- /model-view-controller/etc/mvc-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/model-view-controller/etc/mvc-architecture-diagram.png -------------------------------------------------------------------------------- /model-view-intent/etc/model-view-intent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/model-view-intent/etc/model-view-intent.png -------------------------------------------------------------------------------- /model-view-intent/etc/mvi-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/model-view-intent/etc/mvi-architecture-diagram.png -------------------------------------------------------------------------------- /model-view-presenter/etc/model-view-presenter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/model-view-presenter/etc/model-view-presenter.png -------------------------------------------------------------------------------- /model-view-presenter/etc/model-view-presenter_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/model-view-presenter/etc/model-view-presenter_1.png -------------------------------------------------------------------------------- /model-view-presenter/etc/mvp-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/model-view-presenter/etc/mvp-architecture-diagram.png -------------------------------------------------------------------------------- /model-view-viewmodel/etc/model-view-viewmodel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/model-view-viewmodel/etc/model-view-viewmodel.png -------------------------------------------------------------------------------- /model-view-viewmodel/etc/mvvm-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/model-view-viewmodel/etc/mvvm-architecture-diagram.png -------------------------------------------------------------------------------- /model-view-viewmodel/lombok.config: -------------------------------------------------------------------------------- 1 | config.stopBubbling = true 2 | lombok.addLombokGeneratedAnnotation = true -------------------------------------------------------------------------------- /model-view-viewmodel/src/main/webapp/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Specification-Title: ZK Application 3 | Specification-Version: 1.0 4 | Specification-Vendor: 5 | Implementation-Title: 6 | Implementation-URL: http://your-website/ 7 | Implementation-Version: 1.0 8 | Implementation-Vendor: 9 | -------------------------------------------------------------------------------- /monad/etc/monad-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/monad/etc/monad-flowchart.png -------------------------------------------------------------------------------- /monad/etc/monad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/monad/etc/monad.png -------------------------------------------------------------------------------- /money/etc/money-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/money/etc/money-flowchart.png -------------------------------------------------------------------------------- /money/etc/money-mind-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/money/etc/money-mind-map.png -------------------------------------------------------------------------------- /money/etc/money.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package com.iluwatar { 3 | class App { 4 | - logger : Logger {static} 5 | + App() 6 | + main(args : String[]) {static} 7 | } 8 | class Money { 9 | - amount : double 10 | - currency : String 11 | + Money(amnt : double, curr : String) 12 | + addMoney(moneyToBeAdded : Money) 13 | + exchangeCurrency(currencyToChangeTo : String, exchangeRate : double) 14 | + getAmount() : double 15 | + getCurrency() : String 16 | + multiply(factor : int) 17 | - roundToTwoDecimals(value : double) : double 18 | + subtractMoney(moneyToBeSubtracted : Money) 19 | } 20 | } 21 | @enduml -------------------------------------------------------------------------------- /monitor/etc/monitor-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/monitor/etc/monitor-sequence-diagram.png -------------------------------------------------------------------------------- /monitor/etc/monitor.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/monitor/etc/monitor.urm.png -------------------------------------------------------------------------------- /monitor/etc/monitor.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | Main - Bank : use 3 | class Main{ 4 | + main(args : String[]) : void 5 | } 6 | class Bank{ 7 | - accounts : int[] 8 | + Bank (accountNum : int , baseAccount : int) 9 | + transfer(accountA : int , accountB : int , amount : int) : void {synchronized} 10 | - getBalance() : void {synchronized} 11 | } 12 | @enduml 13 | -------------------------------------------------------------------------------- /monolithic-architecture/etc/monolithic-architecture-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/monolithic-architecture/etc/monolithic-architecture-flowchart.png -------------------------------------------------------------------------------- /monolithic-architecture/etc/monolithic-architecture-mind-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/monolithic-architecture/etc/monolithic-architecture-mind-map.png -------------------------------------------------------------------------------- /monolithic-architecture/etc/mvc-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/monolithic-architecture/etc/mvc-architecture-diagram.png -------------------------------------------------------------------------------- /monolithic-architecture/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.datasource.driver-class-name=org.h2.Driver 2 | spring.datasource.password=password 3 | spring.datasource.url=jdbc:h2:mem:testdb 4 | spring.datasource.username=admin 5 | spring.h2.console.enabled=true 6 | spring.jpa.hibernate.ddl-auto=update 7 | spring.jpa.show-sql=true 8 | -------------------------------------------------------------------------------- /monostate/etc/monostate-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/monostate/etc/monostate-flowchart.png -------------------------------------------------------------------------------- /monostate/etc/monostate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/monostate/etc/monostate.png -------------------------------------------------------------------------------- /multiton/etc/multiton-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/multiton/etc/multiton-flowchart.png -------------------------------------------------------------------------------- /multiton/etc/multiton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/multiton/etc/multiton.png -------------------------------------------------------------------------------- /mute-idiom/etc/mute-idiom-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/mute-idiom/etc/mute-idiom-flowchart.png -------------------------------------------------------------------------------- /mute-idiom/etc/mute-idiom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/mute-idiom/etc/mute-idiom.png -------------------------------------------------------------------------------- /naked-objects/etc/naked-objects-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/naked-objects/etc/naked-objects-architecture-diagram.png -------------------------------------------------------------------------------- /notification/etc/notification-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/notification/etc/notification-sequence-diagram.png -------------------------------------------------------------------------------- /notification/etc/notification.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/notification/etc/notification.urm.png -------------------------------------------------------------------------------- /null-object/etc/null-object-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/null-object/etc/null-object-sequence-diagram.png -------------------------------------------------------------------------------- /null-object/etc/null-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/null-object/etc/null-object.png -------------------------------------------------------------------------------- /object-mother/etc/object-mother-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/object-mother/etc/object-mother-flowchart.png -------------------------------------------------------------------------------- /object-mother/etc/object-mother-mind-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/object-mother/etc/object-mother-mind-map.png -------------------------------------------------------------------------------- /object-mother/etc/object-mother.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/object-mother/etc/object-mother.png -------------------------------------------------------------------------------- /object-pool/etc/object-pool-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/object-pool/etc/object-pool-sequence-diagram.png -------------------------------------------------------------------------------- /object-pool/etc/object-pool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/object-pool/etc/object-pool.png -------------------------------------------------------------------------------- /observer/etc/observer-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/observer/etc/observer-sequence-diagram.png -------------------------------------------------------------------------------- /observer/etc/observer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/observer/etc/observer.png -------------------------------------------------------------------------------- /observer/etc/observer_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/observer/etc/observer_1.png -------------------------------------------------------------------------------- /observer/etc/observer_with_generics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/observer/etc/observer_with_generics.png -------------------------------------------------------------------------------- /optimistic-offline-lock/etc/optimistic-offline-lock-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/optimistic-offline-lock/etc/optimistic-offline-lock-sequence-diagram.png -------------------------------------------------------------------------------- /page-controller/etc/page-controller-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/page-controller/etc/page-controller-architecture-diagram.png -------------------------------------------------------------------------------- /page-controller/etc/page-controller.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/page-controller/etc/page-controller.urm.png -------------------------------------------------------------------------------- /page-object/etc/page-object-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/page-object/etc/page-object-flowchart.png -------------------------------------------------------------------------------- /page-object/etc/page-object-mind-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/page-object/etc/page-object-mind-map.png -------------------------------------------------------------------------------- /page-object/etc/page-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/page-object/etc/page-object.png -------------------------------------------------------------------------------- /page-object/etc/page-object.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | @enduml -------------------------------------------------------------------------------- /page-object/sample-application/etc/page-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/page-object/sample-application/etc/page-object.png -------------------------------------------------------------------------------- /page-object/sample-application/etc/sample-application.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package com.iluwatar.pageobject { 3 | class App { 4 | - LOGGER : Logger {static} 5 | - App() 6 | + main(args : String[]) {static} 7 | } 8 | } 9 | @enduml -------------------------------------------------------------------------------- /parameter-object/etc/parameter-object-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/parameter-object/etc/parameter-object-flowchart.png -------------------------------------------------------------------------------- /parameter-object/etc/parameter-object-mind-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/parameter-object/etc/parameter-object-mind-map.png -------------------------------------------------------------------------------- /parameter-object/etc/parameter-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/parameter-object/etc/parameter-object.png -------------------------------------------------------------------------------- /partial-response/etc/partial-response-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/partial-response/etc/partial-response-sequence-diagram.png -------------------------------------------------------------------------------- /partial-response/etc/partial-response.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/partial-response/etc/partial-response.urm.png -------------------------------------------------------------------------------- /pipeline/etc/pipeline-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/pipeline/etc/pipeline-flowchart.png -------------------------------------------------------------------------------- /pipeline/etc/pipeline.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/pipeline/etc/pipeline.urm.png -------------------------------------------------------------------------------- /poison-pill/etc/poison-pill-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/poison-pill/etc/poison-pill-sequence-diagram.png -------------------------------------------------------------------------------- /poison-pill/etc/poison-pill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/poison-pill/etc/poison-pill.png -------------------------------------------------------------------------------- /presentation-model/etc/presentation-model-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/presentation-model/etc/presentation-model-architecture-diagram.png -------------------------------------------------------------------------------- /presentation-model/etc/presentation-model.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/presentation-model/etc/presentation-model.urm.png -------------------------------------------------------------------------------- /private-class-data/etc/private-class-data-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/private-class-data/etc/private-class-data-flowchart.png -------------------------------------------------------------------------------- /private-class-data/etc/private-class-data-mind-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/private-class-data/etc/private-class-data-mind-map.png -------------------------------------------------------------------------------- /private-class-data/etc/private-class-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/private-class-data/etc/private-class-data.png -------------------------------------------------------------------------------- /producer-consumer/etc/producer-consumer-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/producer-consumer/etc/producer-consumer-sequence-diagram.png -------------------------------------------------------------------------------- /producer-consumer/etc/producer-consumer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/producer-consumer/etc/producer-consumer.png -------------------------------------------------------------------------------- /promise/etc/promise-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/promise/etc/promise-sequence-diagram.png -------------------------------------------------------------------------------- /promise/etc/promise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/promise/etc/promise.png -------------------------------------------------------------------------------- /property/etc/property-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/property/etc/property-sequence-diagram.png -------------------------------------------------------------------------------- /property/etc/property.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/property/etc/property.png -------------------------------------------------------------------------------- /prototype/etc/prototype-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/prototype/etc/prototype-sequence-diagram.png -------------------------------------------------------------------------------- /prototype/etc/prototype.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/prototype/etc/prototype.urm.png -------------------------------------------------------------------------------- /proxy/etc/proxy-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/proxy/etc/proxy-sequence-diagram.png -------------------------------------------------------------------------------- /proxy/etc/proxy.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/proxy/etc/proxy.urm.png -------------------------------------------------------------------------------- /publish-subscribe/etc/pub-sub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/publish-subscribe/etc/pub-sub.png -------------------------------------------------------------------------------- /publish-subscribe/etc/publish-subscribe-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/publish-subscribe/etc/publish-subscribe-sequence-diagram.png -------------------------------------------------------------------------------- /queue-based-load-leveling/etc/queue-based-load-leveling-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/queue-based-load-leveling/etc/queue-based-load-leveling-flowchart.png -------------------------------------------------------------------------------- /queue-based-load-leveling/etc/queue-load-leveling.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/queue-based-load-leveling/etc/queue-load-leveling.gif -------------------------------------------------------------------------------- /reactor/etc/reactor-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/reactor/etc/reactor-sequence-diagram.png -------------------------------------------------------------------------------- /reactor/etc/reactor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/reactor/etc/reactor.png -------------------------------------------------------------------------------- /registry/etc/registry-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/registry/etc/registry-flowchart.png -------------------------------------------------------------------------------- /registry/etc/registry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/registry/etc/registry.png -------------------------------------------------------------------------------- /registry/etc/registry.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package com.iluwatar.registry { 3 | class App { 4 | - LOGGER : Logger {static} 5 | + App() 6 | + main(args : String[]) {static} 7 | } 8 | class Customer { 9 | - id : String 10 | - name : String 11 | + getId() : String 12 | + getName() : String 13 | + toString() : String 14 | } 15 | class CustomerRegistry { 16 | + addCustomer(customer : Customer) 17 | + getCustomer(id : String) 18 | } 19 | } 20 | Customer --> "-addCustomer" CustomerRegistry 21 | @enduml 22 | -------------------------------------------------------------------------------- /repository/etc/repository-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/repository/etc/repository-sequence-diagram.png -------------------------------------------------------------------------------- /repository/etc/repository.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/repository/etc/repository.png -------------------------------------------------------------------------------- /resource-acquisition-is-initialization/etc/raii-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/resource-acquisition-is-initialization/etc/raii-sequence-diagram.png -------------------------------------------------------------------------------- /resource-acquisition-is-initialization/etc/resource-acquisition-is-initialization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/resource-acquisition-is-initialization/etc/resource-acquisition-is-initialization.png -------------------------------------------------------------------------------- /resource-acquisition-is-initialization/etc/resource-acquisition-is-initialization.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package com.iluwatar.resource.acquisition.is.initialization { 3 | class App { 4 | - LOGGER : Logger {static} 5 | + App() 6 | + main(args : String[]) {static} 7 | } 8 | class SlidingDoor { 9 | - LOGGER : Logger {static} 10 | + SlidingDoor() 11 | + close() 12 | } 13 | class TreasureChest { 14 | - LOGGER : Logger {static} 15 | + TreasureChest() 16 | + close() 17 | } 18 | } 19 | @enduml -------------------------------------------------------------------------------- /retry/etc/retry-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/retry/etc/retry-flowchart.png -------------------------------------------------------------------------------- /retry/etc/retry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/retry/etc/retry.png -------------------------------------------------------------------------------- /role-object/etc/role-object-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/role-object/etc/role-object-sequence-diagram.png -------------------------------------------------------------------------------- /role-object/etc/role-object.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/role-object/etc/role-object.urm.png -------------------------------------------------------------------------------- /saga/etc/saga-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/saga/etc/saga-flowchart.png -------------------------------------------------------------------------------- /saga/etc/saga.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/saga/etc/saga.urm.png -------------------------------------------------------------------------------- /separated-interface/etc/class_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/separated-interface/etc/class_diagram.png -------------------------------------------------------------------------------- /separated-interface/etc/separated-interface-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/separated-interface/etc/separated-interface-sequence-diagram.png -------------------------------------------------------------------------------- /serialized-entity/etc/class_diagram.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/serialized-entity/etc/class_diagram.urm.png -------------------------------------------------------------------------------- /serialized-entity/etc/serialized-entity-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/serialized-entity/etc/serialized-entity-flowchart.png -------------------------------------------------------------------------------- /serialized-lob/etc/serialized-lob-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/serialized-lob/etc/serialized-lob-flowchart.png -------------------------------------------------------------------------------- /serialized-lob/etc/slob.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/serialized-lob/etc/slob.urm.png -------------------------------------------------------------------------------- /servant/etc/servant-pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/servant/etc/servant-pattern.png -------------------------------------------------------------------------------- /servant/etc/servant-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/servant/etc/servant-sequence-diagram.png -------------------------------------------------------------------------------- /servant/src/etc/servant.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/servant/src/etc/servant.jpg -------------------------------------------------------------------------------- /server-session/etc/server-session-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/server-session/etc/server-session-sequence-diagram.png -------------------------------------------------------------------------------- /server-session/etc/server-session.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/server-session/etc/server-session.urm.png -------------------------------------------------------------------------------- /service-layer/etc/service-layer-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/service-layer/etc/service-layer-architecture-diagram.png -------------------------------------------------------------------------------- /service-layer/etc/service-layer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/service-layer/etc/service-layer.png -------------------------------------------------------------------------------- /service-locator/etc/service-locator-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/service-locator/etc/service-locator-sequence-diagram.png -------------------------------------------------------------------------------- /service-locator/etc/service-locator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/service-locator/etc/service-locator.png -------------------------------------------------------------------------------- /service-stub/etc/service-stub-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/service-stub/etc/service-stub-sequence-diagram.png -------------------------------------------------------------------------------- /service-to-worker/etc/service-to-worker-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/service-to-worker/etc/service-to-worker-sequence-diagram.png -------------------------------------------------------------------------------- /service-to-worker/etc/service-to-worker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/service-to-worker/etc/service-to-worker.png -------------------------------------------------------------------------------- /session-facade/etc/session-facade-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/session-facade/etc/session-facade-sequence-diagram.png -------------------------------------------------------------------------------- /session-facade/etc/session-facade.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/session-facade/etc/session-facade.urm.png -------------------------------------------------------------------------------- /sharding/etc/sharding-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/sharding/etc/sharding-flowchart.png -------------------------------------------------------------------------------- /sharding/etc/sharding.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/sharding/etc/sharding.urm.png -------------------------------------------------------------------------------- /single-table-inheritance/etc/single-table-inheritance-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/single-table-inheritance/etc/single-table-inheritance-flowchart.png -------------------------------------------------------------------------------- /single-table-inheritance/etc/single-table-inheritance.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/single-table-inheritance/etc/single-table-inheritance.urm.png -------------------------------------------------------------------------------- /single-table-inheritance/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | # H2 Database Configuration 3 | spring.datasource.url=jdbc:h2:mem:sti 4 | spring.datasource.username=sa 5 | spring.datasource.password=password 6 | spring.datasource.driverClassName=org.h2.Driver 7 | spring.jpa.hibernate.ddl-auto=update 8 | 9 | #Uncomment the below properties to see the SQL being generated in backend 10 | #spring.jpa.show-sql=true 11 | #spring.jpa.properties.hibernate.format_sql=true -------------------------------------------------------------------------------- /singleton/etc/singleton-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/singleton/etc/singleton-sequence-diagram.png -------------------------------------------------------------------------------- /singleton/etc/singleton.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/singleton/etc/singleton.urm.png -------------------------------------------------------------------------------- /spatial-partition/etc/spatial-partition-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/spatial-partition/etc/spatial-partition-flowchart.png -------------------------------------------------------------------------------- /spatial-partition/etc/spatial-partition.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/spatial-partition/etc/spatial-partition.urm.png -------------------------------------------------------------------------------- /special-case/etc/special-case-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/special-case/etc/special-case-sequence-diagram.png -------------------------------------------------------------------------------- /special-case/etc/special_case_urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/special-case/etc/special_case_urm.png -------------------------------------------------------------------------------- /specification/etc/specification-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/specification/etc/specification-flowchart.png -------------------------------------------------------------------------------- /specification/etc/specification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/specification/etc/specification.png -------------------------------------------------------------------------------- /state/etc/state-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/state/etc/state-flowchart.png -------------------------------------------------------------------------------- /state/etc/state_urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/state/etc/state_urm.png -------------------------------------------------------------------------------- /step-builder/etc/step-builder-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/step-builder/etc/step-builder-sequence-diagram.png -------------------------------------------------------------------------------- /step-builder/etc/step-builder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/step-builder/etc/step-builder.png -------------------------------------------------------------------------------- /strangler/etc/strangler-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/strangler/etc/strangler-flowchart.png -------------------------------------------------------------------------------- /strangler/etc/strangler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/strangler/etc/strangler.png -------------------------------------------------------------------------------- /strategy/etc/strategy-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/strategy/etc/strategy-flowchart.png -------------------------------------------------------------------------------- /strategy/etc/strategy_urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/strategy/etc/strategy_urm.png -------------------------------------------------------------------------------- /subclass-sandbox/etc/subclass-sandbox-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/subclass-sandbox/etc/subclass-sandbox-flowchart.png -------------------------------------------------------------------------------- /subclass-sandbox/etc/subclass-sandbox.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/subclass-sandbox/etc/subclass-sandbox.urm.png -------------------------------------------------------------------------------- /table-inheritance/etc/table-inheritance-mind-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/table-inheritance/etc/table-inheritance-mind-map.png -------------------------------------------------------------------------------- /table-module/etc/table-module-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/table-module/etc/table-module-flowchart.png -------------------------------------------------------------------------------- /table-module/etc/table-module.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/table-module/etc/table-module.urm.png -------------------------------------------------------------------------------- /template-method/etc/template-method-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/template-method/etc/template-method-sequence-diagram.png -------------------------------------------------------------------------------- /template-method/etc/template_method_urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/template-method/etc/template_method_urm.png -------------------------------------------------------------------------------- /templateview/etc/template-view-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/templateview/etc/template-view-flowchart.png -------------------------------------------------------------------------------- /templateview/etc/template_view_urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/templateview/etc/template_view_urm.png -------------------------------------------------------------------------------- /thread-pool-executor/etc/thread-pool-executor.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/thread-pool-executor/etc/thread-pool-executor.urm.png -------------------------------------------------------------------------------- /throttling/etc/throttling-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/throttling/etc/throttling-flowchart.png -------------------------------------------------------------------------------- /throttling/etc/throttling_urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/throttling/etc/throttling_urm.png -------------------------------------------------------------------------------- /tolerant-reader/etc/tolerant-reader-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/tolerant-reader/etc/tolerant-reader-sequence-diagram.png -------------------------------------------------------------------------------- /tolerant-reader/etc/tolerant_reader_urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/tolerant-reader/etc/tolerant_reader_urm.png -------------------------------------------------------------------------------- /trampoline/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | .idea/ 3 | -------------------------------------------------------------------------------- /trampoline/etc/trampoline-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/trampoline/etc/trampoline-flowchart.png -------------------------------------------------------------------------------- /trampoline/etc/trampoline.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/trampoline/etc/trampoline.urm.png -------------------------------------------------------------------------------- /trampoline/etc/trampoline.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package com.iluwatar.trampoline { 3 | interface Trampoline { 4 | + complete() : boolean 5 | + done(result : T) : Trampoline {static} 6 | + get() : T {abstract} 7 | + jump() : Trampoline 8 | + more(trampoline : Trampoline>) : Trampoline {static} 9 | + result() : T 10 | } 11 | class TrampolineApp { 12 | - log : Logger {static} 13 | + TrampolineApp() 14 | + loop(times : int, prod : int) : Trampoline {static} 15 | + main(args : String[]) {static} 16 | } 17 | } 18 | @enduml -------------------------------------------------------------------------------- /transaction-script/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | .idea/ 3 | -------------------------------------------------------------------------------- /transaction-script/etc/transaction-script-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/transaction-script/etc/transaction-script-flowchart.png -------------------------------------------------------------------------------- /transaction-script/etc/transaction-script.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/transaction-script/etc/transaction-script.png -------------------------------------------------------------------------------- /twin/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | -------------------------------------------------------------------------------- /twin/etc/twin-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/twin/etc/twin-sequence-diagram.png -------------------------------------------------------------------------------- /twin/etc/twin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/twin/etc/twin.png -------------------------------------------------------------------------------- /twin/etc/twin.urm.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package com.iluwatar.twin { 3 | class App { 4 | + App() 5 | + main(args : String[]) {static} 6 | - waiting() {static} 7 | } 8 | class BallItem { 9 | - LOGGER : Logger {static} 10 | - isSuspended : boolean 11 | - twin : BallThread 12 | + BallItem() 13 | + click() 14 | + doDraw() 15 | + move() 16 | + setTwin(twin : BallThread) 17 | } 18 | abstract class GameItem { 19 | - LOGGER : Logger {static} 20 | + GameItem() 21 | + click() {abstract} 22 | + doDraw() {abstract} 23 | + draw() 24 | } 25 | } 26 | BallItem --|> GameItem 27 | @enduml -------------------------------------------------------------------------------- /type-object/etc/type-object-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/type-object/etc/type-object-flowchart.png -------------------------------------------------------------------------------- /type-object/etc/typeobjectpattern.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/type-object/etc/typeobjectpattern.urm.png -------------------------------------------------------------------------------- /unit-of-work/etc/unit-of-work-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/unit-of-work/etc/unit-of-work-flowchart.png -------------------------------------------------------------------------------- /unit-of-work/etc/unit-of-work.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/unit-of-work/etc/unit-of-work.urm.png -------------------------------------------------------------------------------- /update-method/etc/update-method-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/update-method/etc/update-method-sequence-diagram.png -------------------------------------------------------------------------------- /update-method/etc/update-method.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/update-method/etc/update-method.urm.png -------------------------------------------------------------------------------- /value-object/etc/value-object-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/value-object/etc/value-object-flowchart.png -------------------------------------------------------------------------------- /value-object/etc/value-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/value-object/etc/value-object.png -------------------------------------------------------------------------------- /version-number/etc/version-number-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/version-number/etc/version-number-flowchart.png -------------------------------------------------------------------------------- /version-number/etc/version-number.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/version-number/etc/version-number.urm.png -------------------------------------------------------------------------------- /virtual-proxy/etc/virtual-proxy-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/virtual-proxy/etc/virtual-proxy-sequence-diagram.png -------------------------------------------------------------------------------- /virtual-proxy/etc/virtual.proxy.urm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/virtual-proxy/etc/virtual.proxy.urm.png -------------------------------------------------------------------------------- /visitor/etc/visitor-sequence-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/visitor/etc/visitor-sequence-diagram.png -------------------------------------------------------------------------------- /visitor/etc/visitor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/visitor/etc/visitor.png -------------------------------------------------------------------------------- /visitor/etc/visitor_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iluwatar/java-design-patterns/ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d/visitor/etc/visitor_1.png --------------------------------------------------------------------------------