├── .gitignore ├── README.md ├── pom.xml └── src ├── main ├── java │ └── com │ │ └── isa │ │ └── patterns │ │ ├── adapter │ │ ├── ClientMain.java │ │ ├── Duck.java │ │ ├── MallardDuck.java │ │ ├── README.md │ │ ├── Turkey.java │ │ ├── TurkeyAdapter.java │ │ └── WildTurkey.java │ │ ├── bridge │ │ ├── ClientMain.java │ │ ├── ColoredTelevision.java │ │ ├── ConcreteRemoteControl.java │ │ ├── RemoteControl.java │ │ ├── SatelliteTelevision.java │ │ └── Television.java │ │ ├── builder │ │ ├── README.md │ │ ├── classic │ │ │ ├── ClientMain.java │ │ │ └── Person.java │ │ ├── inherited │ │ │ ├── ClientMain.java │ │ │ ├── Engineer.java │ │ │ ├── Pilot.java │ │ │ ├── Profession.java │ │ │ ├── ProfessionBuilder.java │ │ │ └── ProfessionBuilders.java │ │ └── selfbounded │ │ │ ├── ClientMain.java │ │ │ ├── Engineer.java │ │ │ ├── Pilot.java │ │ │ ├── Profession.java │ │ │ ├── ProfessionBuilder.java │ │ │ └── ProfessionBuilders.java │ │ ├── chainofresponsibility │ │ ├── independent │ │ │ ├── EncodeFilter.java │ │ │ ├── Filter.java │ │ │ ├── FilterChain.java │ │ │ ├── Input.java │ │ │ ├── Output.java │ │ │ ├── ReplaceFilter.java │ │ │ ├── UpperCaseFilter.java │ │ │ ├── nonthreadsafe │ │ │ │ ├── ClientMain.java │ │ │ │ └── NonThreadSafeFilterChain.java │ │ │ └── threadsafe │ │ │ │ ├── ClientMain.java │ │ │ │ └── ThreadSafeFilterChain.java │ │ └── mutuallyexclusive │ │ │ ├── AbstractEvaluationRule.java │ │ │ ├── ClientMain.java │ │ │ ├── EvaluationResult.java │ │ │ ├── EvaluationRule.java │ │ │ ├── FailEvaluationRule.java │ │ │ ├── PassEvaluationRule.java │ │ │ └── ZeroPointEvaluationRule.java │ │ ├── command │ │ ├── ClientMain.java │ │ ├── Command.java │ │ ├── Light.java │ │ ├── LightOffCommand.java │ │ ├── LightOnCommand.java │ │ ├── NoCommand.java │ │ └── RemoteControl.java │ │ ├── composite │ │ ├── Menu.java │ │ ├── MenuComponent.java │ │ ├── MenuItem.java │ │ ├── TestClient.java │ │ └── Waitress.java │ │ ├── compositeiterator │ │ ├── CompositeIterator.java │ │ ├── CompositeIteratorWithStack.java │ │ ├── Menu.java │ │ ├── MenuComponent.java │ │ ├── MenuItem.java │ │ ├── NullIterator.java │ │ ├── TestClient.java │ │ └── Waitress.java │ │ ├── decorator │ │ ├── Beverage.java │ │ ├── ClientMain.java │ │ ├── CondimentDecorator.java │ │ ├── Decaf.java │ │ ├── Espresso.java │ │ ├── HouseBlend.java │ │ ├── Mocha.java │ │ ├── README.md │ │ ├── SteamedMilk.java │ │ ├── Whip.java │ │ ├── forwarding │ │ │ ├── Animal.java │ │ │ ├── BreedingAwareDecorator.java │ │ │ ├── ClientMain.java │ │ │ ├── Dog.java │ │ │ └── ForwardingAnimal.java │ │ └── javaio │ │ │ ├── ClientMain.java │ │ │ └── LowerCaseInputStream.java │ │ ├── facade │ │ ├── Amplifier.java │ │ ├── CdPlayer.java │ │ ├── ClientMain.java │ │ ├── DvdPlayer.java │ │ ├── HomeTheaterFacade.java │ │ └── Tuner.java │ │ ├── factory │ │ ├── abstractfactory │ │ │ ├── Cheese.java │ │ │ ├── CheesePizza.java │ │ │ ├── ChicagoPizzaIngredientFactory.java │ │ │ ├── ChicagoPizzaStore.java │ │ │ ├── Clams.java │ │ │ ├── ClamsPizza.java │ │ │ ├── ClientMain.java │ │ │ ├── Dough.java │ │ │ ├── FreshClams.java │ │ │ ├── FrozenClams.java │ │ │ ├── MarinaSauce.java │ │ │ ├── MozzarellaCheese.java │ │ │ ├── NYPizzaIngredientFactory.java │ │ │ ├── NYPizzaStore.java │ │ │ ├── Pizza.java │ │ │ ├── PizzaIngredientFactory.java │ │ │ ├── PizzaStore.java │ │ │ ├── PlumTomatoSauce.java │ │ │ ├── ReggianoCheese.java │ │ │ ├── Sauce.java │ │ │ ├── ThickCrustDough.java │ │ │ └── ThinCrustDough.java │ │ ├── factorymethod │ │ │ ├── ChicagoPizzaStore.java │ │ │ ├── ChicagoStyleCheesePizza.java │ │ │ ├── ChicagoStyleClamPizza.java │ │ │ ├── ClientMain.java │ │ │ ├── NYPizzaStore.java │ │ │ ├── NYStyleCheesePizza.java │ │ │ ├── NYStyleClamPizza.java │ │ │ ├── Pizza.java │ │ │ └── PizzaStore.java │ │ └── simplefactory │ │ │ ├── CheesePizza.java │ │ │ ├── ClamPizza.java │ │ │ ├── ClientMain.java │ │ │ ├── Pizza.java │ │ │ ├── PizzaStore.java │ │ │ ├── SimplePizzaFactory.java │ │ │ └── StaticSimplePizzaFactory.java │ │ ├── iterator │ │ ├── ClientMain.java │ │ ├── DinerMenu.java │ │ ├── DinerMenuIterator.java │ │ ├── Iterator.java │ │ ├── Menu.java │ │ ├── MenuItem.java │ │ ├── PancakeHouseIterator.java │ │ ├── PancakeHouseMenu.java │ │ └── Waitress.java │ │ ├── observer │ │ ├── README.md │ │ ├── classic │ │ │ ├── ClientMain.java │ │ │ ├── CurrentConditions.java │ │ │ ├── ForecastDisplay.java │ │ │ ├── Observer.java │ │ │ ├── StatisticsDisplay.java │ │ │ ├── Subject.java │ │ │ └── WeatherStation.java │ │ └── jdk │ │ │ ├── ClientMain.java │ │ │ ├── CurrentConditions.java │ │ │ ├── ForecastDisplay.java │ │ │ ├── StatisticsDisplay.java │ │ │ └── WeatherStation.java │ │ ├── proxy │ │ ├── README.md │ │ ├── caching │ │ │ ├── CachingUserServiceProxy.java │ │ │ ├── ClientMain.java │ │ │ ├── UserService.java │ │ │ └── UserServiceImpl.java │ │ ├── dynamicproxy │ │ │ ├── Authorized.java │ │ │ ├── ClientMain.java │ │ │ ├── DataService.java │ │ │ ├── DataServiceImpl.java │ │ │ ├── DynamicDataServiceProxy.java │ │ │ └── User.java │ │ ├── lazyloading │ │ │ ├── ClientMain.java │ │ │ ├── ExpensiveService.java │ │ │ ├── ExpensiveServiceImpl.java │ │ │ └── LazyLoadingServiceProxy.java │ │ └── securing │ │ │ ├── ClientMain.java │ │ │ ├── DataService.java │ │ │ ├── DataServiceImpl.java │ │ │ ├── SecuringDataServiceProxy.java │ │ │ └── User.java │ │ ├── singleton │ │ ├── README.md │ │ ├── eager │ │ │ ├── v1 │ │ │ │ └── Singleton.java │ │ │ ├── v2 │ │ │ │ └── Singleton.java │ │ │ └── v3 │ │ │ │ └── Singleton.java │ │ └── lazy │ │ │ ├── v1 │ │ │ └── Singleton.java │ │ │ ├── v2 │ │ │ └── Singleton.java │ │ │ └── v3 │ │ │ └── Singleton.java │ │ ├── state │ │ ├── GumballMachine.java │ │ ├── HasQuarterState.java │ │ ├── NoQuarterState.java │ │ ├── SoldOutState.java │ │ ├── SoldState.java │ │ ├── State.java │ │ └── TestClient.java │ │ ├── strategy │ │ ├── README.md │ │ ├── algorithms │ │ │ ├── FlyNoWay.java │ │ │ ├── FlyWithWings.java │ │ │ ├── Flyable.java │ │ │ ├── MuteQuack.java │ │ │ ├── Quack.java │ │ │ ├── Quackable.java │ │ │ └── Squeak.java │ │ └── main │ │ │ ├── Duck.java │ │ │ └── MainClient.java │ │ ├── telescopingconstructor │ │ ├── ClientMain.java │ │ ├── Person.java │ │ └── README.md │ │ └── templatemethod │ │ ├── CaffeineBeverage.java │ │ ├── ClientMain.java │ │ ├── Coffee.java │ │ └── Tea.java └── resources │ └── test.txt └── test └── java └── com └── isa └── patterns └── singleton ├── eager ├── v1 │ └── SingletonTest.java ├── v2 │ └── SingletonTest.java └── v3 │ └── SingletonTest.java └── lazy ├── v1 └── SingletonTest.java ├── v2 └── SingletonTest.java └── v3 └── SingletonTest.java /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/README.md -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/pom.xml -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/adapter/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/adapter/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/adapter/Duck.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/adapter/Duck.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/adapter/MallardDuck.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/adapter/MallardDuck.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/adapter/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/adapter/README.md -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/adapter/Turkey.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/adapter/Turkey.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/adapter/TurkeyAdapter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/adapter/TurkeyAdapter.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/adapter/WildTurkey.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/adapter/WildTurkey.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/bridge/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/bridge/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/bridge/ColoredTelevision.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/bridge/ColoredTelevision.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/bridge/ConcreteRemoteControl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/bridge/ConcreteRemoteControl.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/bridge/RemoteControl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/bridge/RemoteControl.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/bridge/SatelliteTelevision.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/bridge/SatelliteTelevision.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/bridge/Television.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/bridge/Television.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/builder/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/builder/README.md -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/builder/classic/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/builder/classic/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/builder/classic/Person.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/builder/classic/Person.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/builder/inherited/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/builder/inherited/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/builder/inherited/Engineer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/builder/inherited/Engineer.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/builder/inherited/Pilot.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/builder/inherited/Pilot.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/builder/inherited/Profession.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/builder/inherited/Profession.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/builder/inherited/ProfessionBuilder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/builder/inherited/ProfessionBuilder.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/builder/inherited/ProfessionBuilders.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/builder/inherited/ProfessionBuilders.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/builder/selfbounded/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/builder/selfbounded/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/builder/selfbounded/Engineer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/builder/selfbounded/Engineer.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/builder/selfbounded/Pilot.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/builder/selfbounded/Pilot.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/builder/selfbounded/Profession.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/builder/selfbounded/Profession.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/builder/selfbounded/ProfessionBuilder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/builder/selfbounded/ProfessionBuilder.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/builder/selfbounded/ProfessionBuilders.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/builder/selfbounded/ProfessionBuilders.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/chainofresponsibility/independent/EncodeFilter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/chainofresponsibility/independent/EncodeFilter.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/chainofresponsibility/independent/Filter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/chainofresponsibility/independent/Filter.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/chainofresponsibility/independent/FilterChain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/chainofresponsibility/independent/FilterChain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/chainofresponsibility/independent/Input.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/chainofresponsibility/independent/Input.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/chainofresponsibility/independent/Output.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/chainofresponsibility/independent/Output.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/chainofresponsibility/independent/ReplaceFilter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/chainofresponsibility/independent/ReplaceFilter.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/chainofresponsibility/independent/UpperCaseFilter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/chainofresponsibility/independent/UpperCaseFilter.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/chainofresponsibility/independent/nonthreadsafe/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/chainofresponsibility/independent/nonthreadsafe/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/chainofresponsibility/independent/nonthreadsafe/NonThreadSafeFilterChain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/chainofresponsibility/independent/nonthreadsafe/NonThreadSafeFilterChain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/chainofresponsibility/independent/threadsafe/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/chainofresponsibility/independent/threadsafe/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/chainofresponsibility/independent/threadsafe/ThreadSafeFilterChain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/chainofresponsibility/independent/threadsafe/ThreadSafeFilterChain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/chainofresponsibility/mutuallyexclusive/AbstractEvaluationRule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/chainofresponsibility/mutuallyexclusive/AbstractEvaluationRule.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/chainofresponsibility/mutuallyexclusive/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/chainofresponsibility/mutuallyexclusive/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/chainofresponsibility/mutuallyexclusive/EvaluationResult.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/chainofresponsibility/mutuallyexclusive/EvaluationResult.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/chainofresponsibility/mutuallyexclusive/EvaluationRule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/chainofresponsibility/mutuallyexclusive/EvaluationRule.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/chainofresponsibility/mutuallyexclusive/FailEvaluationRule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/chainofresponsibility/mutuallyexclusive/FailEvaluationRule.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/chainofresponsibility/mutuallyexclusive/PassEvaluationRule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/chainofresponsibility/mutuallyexclusive/PassEvaluationRule.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/chainofresponsibility/mutuallyexclusive/ZeroPointEvaluationRule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/chainofresponsibility/mutuallyexclusive/ZeroPointEvaluationRule.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/command/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/command/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/command/Command.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/command/Command.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/command/Light.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/command/Light.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/command/LightOffCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/command/LightOffCommand.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/command/LightOnCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/command/LightOnCommand.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/command/NoCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/command/NoCommand.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/command/RemoteControl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/command/RemoteControl.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/composite/Menu.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/composite/Menu.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/composite/MenuComponent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/composite/MenuComponent.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/composite/MenuItem.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/composite/MenuItem.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/composite/TestClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/composite/TestClient.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/composite/Waitress.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/composite/Waitress.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/compositeiterator/CompositeIterator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/compositeiterator/CompositeIterator.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/compositeiterator/CompositeIteratorWithStack.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/compositeiterator/CompositeIteratorWithStack.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/compositeiterator/Menu.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/compositeiterator/Menu.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/compositeiterator/MenuComponent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/compositeiterator/MenuComponent.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/compositeiterator/MenuItem.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/compositeiterator/MenuItem.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/compositeiterator/NullIterator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/compositeiterator/NullIterator.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/compositeiterator/TestClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/compositeiterator/TestClient.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/compositeiterator/Waitress.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/compositeiterator/Waitress.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/decorator/Beverage.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/decorator/Beverage.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/decorator/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/decorator/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/decorator/CondimentDecorator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/decorator/CondimentDecorator.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/decorator/Decaf.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/decorator/Decaf.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/decorator/Espresso.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/decorator/Espresso.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/decorator/HouseBlend.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/decorator/HouseBlend.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/decorator/Mocha.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/decorator/Mocha.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/decorator/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/decorator/README.md -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/decorator/SteamedMilk.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/decorator/SteamedMilk.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/decorator/Whip.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/decorator/Whip.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/decorator/forwarding/Animal.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/decorator/forwarding/Animal.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/decorator/forwarding/BreedingAwareDecorator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/decorator/forwarding/BreedingAwareDecorator.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/decorator/forwarding/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/decorator/forwarding/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/decorator/forwarding/Dog.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/decorator/forwarding/Dog.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/decorator/forwarding/ForwardingAnimal.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/decorator/forwarding/ForwardingAnimal.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/decorator/javaio/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/decorator/javaio/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/decorator/javaio/LowerCaseInputStream.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/decorator/javaio/LowerCaseInputStream.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/facade/Amplifier.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/facade/Amplifier.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/facade/CdPlayer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/facade/CdPlayer.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/facade/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/facade/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/facade/DvdPlayer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/facade/DvdPlayer.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/facade/HomeTheaterFacade.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/facade/HomeTheaterFacade.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/facade/Tuner.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/facade/Tuner.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/Cheese.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/Cheese.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/CheesePizza.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/CheesePizza.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/ChicagoPizzaIngredientFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/ChicagoPizzaIngredientFactory.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/ChicagoPizzaStore.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/ChicagoPizzaStore.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/Clams.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/Clams.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/ClamsPizza.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/ClamsPizza.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/Dough.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/Dough.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/FreshClams.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/FreshClams.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/FrozenClams.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/FrozenClams.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/MarinaSauce.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/MarinaSauce.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/MozzarellaCheese.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/MozzarellaCheese.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/NYPizzaIngredientFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/NYPizzaIngredientFactory.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/NYPizzaStore.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/NYPizzaStore.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/Pizza.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/Pizza.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/PizzaIngredientFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/PizzaIngredientFactory.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/PizzaStore.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/PizzaStore.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/PlumTomatoSauce.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/PlumTomatoSauce.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/ReggianoCheese.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/ReggianoCheese.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/Sauce.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/Sauce.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/ThickCrustDough.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/ThickCrustDough.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/abstractfactory/ThinCrustDough.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/abstractfactory/ThinCrustDough.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/factorymethod/ChicagoPizzaStore.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/factorymethod/ChicagoPizzaStore.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/factorymethod/ChicagoStyleCheesePizza.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/factorymethod/ChicagoStyleCheesePizza.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/factorymethod/ChicagoStyleClamPizza.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/factorymethod/ChicagoStyleClamPizza.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/factorymethod/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/factorymethod/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/factorymethod/NYPizzaStore.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/factorymethod/NYPizzaStore.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/factorymethod/NYStyleCheesePizza.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/factorymethod/NYStyleCheesePizza.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/factorymethod/NYStyleClamPizza.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/factorymethod/NYStyleClamPizza.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/factorymethod/Pizza.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/factorymethod/Pizza.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/factorymethod/PizzaStore.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/factorymethod/PizzaStore.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/simplefactory/CheesePizza.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/simplefactory/CheesePizza.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/simplefactory/ClamPizza.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/simplefactory/ClamPizza.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/simplefactory/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/simplefactory/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/simplefactory/Pizza.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/simplefactory/Pizza.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/simplefactory/PizzaStore.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/simplefactory/PizzaStore.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/simplefactory/SimplePizzaFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/simplefactory/SimplePizzaFactory.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/factory/simplefactory/StaticSimplePizzaFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/factory/simplefactory/StaticSimplePizzaFactory.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/iterator/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/iterator/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/iterator/DinerMenu.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/iterator/DinerMenu.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/iterator/DinerMenuIterator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/iterator/DinerMenuIterator.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/iterator/Iterator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/iterator/Iterator.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/iterator/Menu.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/iterator/Menu.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/iterator/MenuItem.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/iterator/MenuItem.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/iterator/PancakeHouseIterator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/iterator/PancakeHouseIterator.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/iterator/PancakeHouseMenu.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/iterator/PancakeHouseMenu.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/iterator/Waitress.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/iterator/Waitress.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/observer/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/observer/README.md -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/observer/classic/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/observer/classic/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/observer/classic/CurrentConditions.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/observer/classic/CurrentConditions.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/observer/classic/ForecastDisplay.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/observer/classic/ForecastDisplay.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/observer/classic/Observer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/observer/classic/Observer.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/observer/classic/StatisticsDisplay.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/observer/classic/StatisticsDisplay.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/observer/classic/Subject.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/observer/classic/Subject.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/observer/classic/WeatherStation.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/observer/classic/WeatherStation.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/observer/jdk/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/observer/jdk/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/observer/jdk/CurrentConditions.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/observer/jdk/CurrentConditions.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/observer/jdk/ForecastDisplay.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/observer/jdk/ForecastDisplay.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/observer/jdk/StatisticsDisplay.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/observer/jdk/StatisticsDisplay.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/observer/jdk/WeatherStation.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/observer/jdk/WeatherStation.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/README.md -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/caching/CachingUserServiceProxy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/caching/CachingUserServiceProxy.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/caching/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/caching/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/caching/UserService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/caching/UserService.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/caching/UserServiceImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/caching/UserServiceImpl.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/dynamicproxy/Authorized.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/dynamicproxy/Authorized.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/dynamicproxy/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/dynamicproxy/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/dynamicproxy/DataService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/dynamicproxy/DataService.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/dynamicproxy/DataServiceImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/dynamicproxy/DataServiceImpl.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/dynamicproxy/DynamicDataServiceProxy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/dynamicproxy/DynamicDataServiceProxy.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/dynamicproxy/User.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/dynamicproxy/User.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/lazyloading/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/lazyloading/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/lazyloading/ExpensiveService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/lazyloading/ExpensiveService.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/lazyloading/ExpensiveServiceImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/lazyloading/ExpensiveServiceImpl.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/lazyloading/LazyLoadingServiceProxy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/lazyloading/LazyLoadingServiceProxy.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/securing/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/securing/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/securing/DataService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/securing/DataService.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/securing/DataServiceImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/securing/DataServiceImpl.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/securing/SecuringDataServiceProxy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/securing/SecuringDataServiceProxy.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/proxy/securing/User.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/proxy/securing/User.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/singleton/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/singleton/README.md -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/singleton/eager/v1/Singleton.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/singleton/eager/v1/Singleton.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/singleton/eager/v2/Singleton.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/singleton/eager/v2/Singleton.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/singleton/eager/v3/Singleton.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/singleton/eager/v3/Singleton.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/singleton/lazy/v1/Singleton.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/singleton/lazy/v1/Singleton.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/singleton/lazy/v2/Singleton.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/singleton/lazy/v2/Singleton.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/singleton/lazy/v3/Singleton.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/singleton/lazy/v3/Singleton.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/state/GumballMachine.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/state/GumballMachine.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/state/HasQuarterState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/state/HasQuarterState.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/state/NoQuarterState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/state/NoQuarterState.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/state/SoldOutState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/state/SoldOutState.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/state/SoldState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/state/SoldState.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/state/State.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/state/State.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/state/TestClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/state/TestClient.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/strategy/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/strategy/README.md -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/strategy/algorithms/FlyNoWay.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/strategy/algorithms/FlyNoWay.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/strategy/algorithms/FlyWithWings.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/strategy/algorithms/FlyWithWings.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/strategy/algorithms/Flyable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/strategy/algorithms/Flyable.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/strategy/algorithms/MuteQuack.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/strategy/algorithms/MuteQuack.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/strategy/algorithms/Quack.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/strategy/algorithms/Quack.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/strategy/algorithms/Quackable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/strategy/algorithms/Quackable.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/strategy/algorithms/Squeak.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/strategy/algorithms/Squeak.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/strategy/main/Duck.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/strategy/main/Duck.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/strategy/main/MainClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/strategy/main/MainClient.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/telescopingconstructor/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/telescopingconstructor/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/telescopingconstructor/Person.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/telescopingconstructor/Person.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/telescopingconstructor/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/telescopingconstructor/README.md -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/templatemethod/CaffeineBeverage.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/templatemethod/CaffeineBeverage.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/templatemethod/ClientMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/templatemethod/ClientMain.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/templatemethod/Coffee.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/templatemethod/Coffee.java -------------------------------------------------------------------------------- /src/main/java/com/isa/patterns/templatemethod/Tea.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/main/java/com/isa/patterns/templatemethod/Tea.java -------------------------------------------------------------------------------- /src/main/resources/test.txt: -------------------------------------------------------------------------------- 1 | Hello World, Again! 2 | This is THE second Line. -------------------------------------------------------------------------------- /src/test/java/com/isa/patterns/singleton/eager/v1/SingletonTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/test/java/com/isa/patterns/singleton/eager/v1/SingletonTest.java -------------------------------------------------------------------------------- /src/test/java/com/isa/patterns/singleton/eager/v2/SingletonTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/test/java/com/isa/patterns/singleton/eager/v2/SingletonTest.java -------------------------------------------------------------------------------- /src/test/java/com/isa/patterns/singleton/eager/v3/SingletonTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/test/java/com/isa/patterns/singleton/eager/v3/SingletonTest.java -------------------------------------------------------------------------------- /src/test/java/com/isa/patterns/singleton/lazy/v1/SingletonTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/test/java/com/isa/patterns/singleton/lazy/v1/SingletonTest.java -------------------------------------------------------------------------------- /src/test/java/com/isa/patterns/singleton/lazy/v2/SingletonTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/test/java/com/isa/patterns/singleton/lazy/v2/SingletonTest.java -------------------------------------------------------------------------------- /src/test/java/com/isa/patterns/singleton/lazy/v3/SingletonTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isaolmez/java-and-design-patterns/HEAD/src/test/java/com/isa/patterns/singleton/lazy/v3/SingletonTest.java --------------------------------------------------------------------------------