├── .gitignore ├── .vscode └── settings.json ├── 01_duck_behavior ├── Duck.java ├── FlyBehavior.java ├── FlyNoWay.java ├── FlyRocketPowered.java ├── FlyWithWings.java ├── MallardDuck.java ├── MiniDuckSimulator.java ├── ModelDuck.java ├── MuteQuack.java ├── Quack.java ├── QuackBehavior.java ├── Squeak.java └── readme.md ├── 02_weather_monitoring_application ├── BuiltIn │ ├── CurrentConditionsDisplay.java │ ├── DisplayElement.java │ ├── ForecastDisplay.java │ ├── WeatherData.java │ ├── WeatherStationBi.java │ └── readme.md ├── WeatherStation │ ├── CurrentConditionsDisplay.java │ ├── DisplayElement.java │ ├── Observer.java │ ├── Subject.java │ ├── WeatherData.java │ ├── WeatherStation.java │ └── readme.md └── readme.md ├── 03_starbuzz_coffee ├── StarbuzzCoffee │ ├── Beverage.java │ ├── CondimentDecorator.java │ ├── DarkRoast.java │ ├── Decaf.java │ ├── Espresso.java │ ├── HouseBlend.java │ ├── Mocha.java │ ├── Soy.java │ ├── StarbuzzCoffee.java │ ├── Whip.java │ └── readme.md └── readme.md ├── 04_java_io_decorator ├── JavaIoDecorator │ ├── InputTest.java │ ├── LowerCaseInputStream.java │ └── readme.md └── readme.md ├── 05_pizza_store ├── PizzaStore │ ├── ChicagoPizzaStore.java │ ├── ChicagoStyleCheesePizza.java │ ├── ChicagoStylePepperoniPizza.java │ ├── NYPizzaStore.java │ ├── NYStyleCheesePizza.java │ ├── NYStylePepperoniPizza.java │ ├── Pizza.java │ ├── PizzaStore.java │ ├── PizzaTestDrive.java │ └── readme.md └── readme.md ├── 06_home_automation ├── CeilingFan │ ├── CeilingFan.java │ ├── CeilingFanHighCommand.java │ ├── CeilingFanMediumCommand.java │ ├── CeilingFanOffCommand.java │ ├── Command.java │ ├── NoCommand.java │ ├── RemoteControlWithUndo.java │ ├── RemoteLoader.java │ └── readme.md ├── CommandObject │ ├── Command.java │ ├── Light.java │ ├── LightOnCommand.java │ ├── RemoteControlTest.java │ ├── SimpleRemoteControl.java │ └── readme.md ├── RemoteControl │ ├── Command.java │ ├── Light.java │ ├── LightOffCommand.java │ ├── LightOnCommand.java │ ├── NoCommand.java │ ├── RemoteControl.java │ ├── RemoteLoader.java │ ├── Stereo.java │ ├── StereoOffWithCDCommand.java │ ├── StereoOnWithCDCommand.java │ └── readme.md ├── RemoteControlWithUndo │ ├── Command.java │ ├── Light.java │ ├── LightOffCommand.java │ ├── LightOnCommand.java │ ├── NoCommand.java │ ├── RemoteControlWithUndo.java │ ├── RemoteLoader.java │ └── readme.md └── readme.md ├── 07_duck_adapter ├── DuckAdapter │ ├── Duck.java │ ├── DuckTestDrive.java │ ├── MallardDuck.java │ ├── Turkey.java │ ├── TurkeyAdapter.java │ ├── WildTurkey.java │ └── readme.md └── readme.md ├── 08_home_theater_facade ├── HomeTheater │ ├── Amplifier.java │ ├── CdPlayer.java │ ├── DvdPlayer.java │ ├── HomeTheaterFacade.java │ ├── HomeTheaterTestDrive.java │ ├── PopcornPopper.java │ ├── Projector.java │ ├── Screen.java │ ├── TheaterLights.java │ ├── Tuner.java │ └── readme.md └── readme.md ├── 09_caffeine_beverage_with_hook ├── CaffeineBeverageWithHook │ ├── BeverageTestDrive.java │ ├── CaffeineBeverageWithHook.java │ ├── CoffeeWithHook.java │ ├── TeaWithHook.java │ └── readme.md └── readme.md ├── 10_duck_sorting ├── DuckSorting │ ├── Duck.java │ ├── DuckSortTestDrive.java │ └── readme.md └── readme.md ├── 11_iterator_pattern ├── Cafe │ ├── CafeMenu.java │ ├── DinerMenu.java │ ├── DinerMenuIterator.java │ ├── Menu.java │ ├── MenuTestDrive.java │ ├── PancakeHouseMenu.java │ ├── Waitress.java │ └── readme.md ├── DinerAndPancakeHouseIterator │ ├── DinerMenu.java │ ├── DinerMenuIterator.java │ ├── Iterator.java │ ├── MenuItem.java │ ├── MenuTestDrive.java │ ├── PancakeHouseMenu.java │ ├── PancakeMenuIterator.java │ ├── Waitress.java │ └── readme.md ├── MenuComposite │ ├── Menu.java │ ├── MenuComponent.java │ ├── MenuItem.java │ ├── MenuTestDrive.java │ ├── Waitress.java │ └── readme.md ├── MenuCompositeWithIterator │ ├── CompositeIterator.java │ ├── Menu.java │ ├── MenuComponent.java │ ├── MenuItem.java │ ├── MenuTestDrive.java │ ├── NullIterator.java │ ├── Waitress.java │ └── readme.md └── readme.md ├── 12_gumball_machine ├── GumballMachine │ ├── GumballMachine.java │ ├── GumballMachineTestDrive.java │ └── readme.md ├── GumballMachineOneInTenGame │ ├── GumballMachine.java │ ├── GumballMachineTestDrive.java │ ├── HasQuarterState.java │ ├── NoQuarterState.java │ ├── SoldOutState.java │ ├── SoldState.java │ ├── State.java │ ├── WinnerState.java │ └── readme.md ├── GumballMachineWithStatePattern │ ├── GumballMachine.java │ ├── HasQuarterState.java │ ├── NoQuarterState.java │ ├── SoldOutState.java │ ├── SoldState.java │ ├── State.java │ └── readme.md └── readme.md ├── README.md ├── baking_with_oo_goodness.md ├── being_adaptive.md ├── controlling_object_access.md ├── decorating_objects.md ├── design_patterns.md ├── design_principles.md ├── encapsulating_algorithms.md ├── encapsulating_invocation.md ├── keeping_your_objects_in_the_know.md ├── one_of_a_kind_objects.md ├── the_state_of_things.md ├── welcome_to_design_patterns.md └── well_managed_collections.md /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/.gitignore -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /01_duck_behavior/Duck.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/01_duck_behavior/Duck.java -------------------------------------------------------------------------------- /01_duck_behavior/FlyBehavior.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/01_duck_behavior/FlyBehavior.java -------------------------------------------------------------------------------- /01_duck_behavior/FlyNoWay.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/01_duck_behavior/FlyNoWay.java -------------------------------------------------------------------------------- /01_duck_behavior/FlyRocketPowered.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/01_duck_behavior/FlyRocketPowered.java -------------------------------------------------------------------------------- /01_duck_behavior/FlyWithWings.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/01_duck_behavior/FlyWithWings.java -------------------------------------------------------------------------------- /01_duck_behavior/MallardDuck.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/01_duck_behavior/MallardDuck.java -------------------------------------------------------------------------------- /01_duck_behavior/MiniDuckSimulator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/01_duck_behavior/MiniDuckSimulator.java -------------------------------------------------------------------------------- /01_duck_behavior/ModelDuck.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/01_duck_behavior/ModelDuck.java -------------------------------------------------------------------------------- /01_duck_behavior/MuteQuack.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/01_duck_behavior/MuteQuack.java -------------------------------------------------------------------------------- /01_duck_behavior/Quack.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/01_duck_behavior/Quack.java -------------------------------------------------------------------------------- /01_duck_behavior/QuackBehavior.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/01_duck_behavior/QuackBehavior.java -------------------------------------------------------------------------------- /01_duck_behavior/Squeak.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/01_duck_behavior/Squeak.java -------------------------------------------------------------------------------- /01_duck_behavior/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/01_duck_behavior/readme.md -------------------------------------------------------------------------------- /02_weather_monitoring_application/BuiltIn/CurrentConditionsDisplay.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/02_weather_monitoring_application/BuiltIn/CurrentConditionsDisplay.java -------------------------------------------------------------------------------- /02_weather_monitoring_application/BuiltIn/DisplayElement.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/02_weather_monitoring_application/BuiltIn/DisplayElement.java -------------------------------------------------------------------------------- /02_weather_monitoring_application/BuiltIn/ForecastDisplay.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/02_weather_monitoring_application/BuiltIn/ForecastDisplay.java -------------------------------------------------------------------------------- /02_weather_monitoring_application/BuiltIn/WeatherData.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/02_weather_monitoring_application/BuiltIn/WeatherData.java -------------------------------------------------------------------------------- /02_weather_monitoring_application/BuiltIn/WeatherStationBi.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/02_weather_monitoring_application/BuiltIn/WeatherStationBi.java -------------------------------------------------------------------------------- /02_weather_monitoring_application/BuiltIn/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/02_weather_monitoring_application/BuiltIn/readme.md -------------------------------------------------------------------------------- /02_weather_monitoring_application/WeatherStation/CurrentConditionsDisplay.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/02_weather_monitoring_application/WeatherStation/CurrentConditionsDisplay.java -------------------------------------------------------------------------------- /02_weather_monitoring_application/WeatherStation/DisplayElement.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/02_weather_monitoring_application/WeatherStation/DisplayElement.java -------------------------------------------------------------------------------- /02_weather_monitoring_application/WeatherStation/Observer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/02_weather_monitoring_application/WeatherStation/Observer.java -------------------------------------------------------------------------------- /02_weather_monitoring_application/WeatherStation/Subject.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/02_weather_monitoring_application/WeatherStation/Subject.java -------------------------------------------------------------------------------- /02_weather_monitoring_application/WeatherStation/WeatherData.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/02_weather_monitoring_application/WeatherStation/WeatherData.java -------------------------------------------------------------------------------- /02_weather_monitoring_application/WeatherStation/WeatherStation.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/02_weather_monitoring_application/WeatherStation/WeatherStation.java -------------------------------------------------------------------------------- /02_weather_monitoring_application/WeatherStation/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/02_weather_monitoring_application/WeatherStation/readme.md -------------------------------------------------------------------------------- /02_weather_monitoring_application/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/02_weather_monitoring_application/readme.md -------------------------------------------------------------------------------- /03_starbuzz_coffee/StarbuzzCoffee/Beverage.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/03_starbuzz_coffee/StarbuzzCoffee/Beverage.java -------------------------------------------------------------------------------- /03_starbuzz_coffee/StarbuzzCoffee/CondimentDecorator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/03_starbuzz_coffee/StarbuzzCoffee/CondimentDecorator.java -------------------------------------------------------------------------------- /03_starbuzz_coffee/StarbuzzCoffee/DarkRoast.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/03_starbuzz_coffee/StarbuzzCoffee/DarkRoast.java -------------------------------------------------------------------------------- /03_starbuzz_coffee/StarbuzzCoffee/Decaf.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/03_starbuzz_coffee/StarbuzzCoffee/Decaf.java -------------------------------------------------------------------------------- /03_starbuzz_coffee/StarbuzzCoffee/Espresso.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/03_starbuzz_coffee/StarbuzzCoffee/Espresso.java -------------------------------------------------------------------------------- /03_starbuzz_coffee/StarbuzzCoffee/HouseBlend.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/03_starbuzz_coffee/StarbuzzCoffee/HouseBlend.java -------------------------------------------------------------------------------- /03_starbuzz_coffee/StarbuzzCoffee/Mocha.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/03_starbuzz_coffee/StarbuzzCoffee/Mocha.java -------------------------------------------------------------------------------- /03_starbuzz_coffee/StarbuzzCoffee/Soy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/03_starbuzz_coffee/StarbuzzCoffee/Soy.java -------------------------------------------------------------------------------- /03_starbuzz_coffee/StarbuzzCoffee/StarbuzzCoffee.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/03_starbuzz_coffee/StarbuzzCoffee/StarbuzzCoffee.java -------------------------------------------------------------------------------- /03_starbuzz_coffee/StarbuzzCoffee/Whip.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/03_starbuzz_coffee/StarbuzzCoffee/Whip.java -------------------------------------------------------------------------------- /03_starbuzz_coffee/StarbuzzCoffee/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/03_starbuzz_coffee/StarbuzzCoffee/readme.md -------------------------------------------------------------------------------- /03_starbuzz_coffee/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/03_starbuzz_coffee/readme.md -------------------------------------------------------------------------------- /04_java_io_decorator/JavaIoDecorator/InputTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/04_java_io_decorator/JavaIoDecorator/InputTest.java -------------------------------------------------------------------------------- /04_java_io_decorator/JavaIoDecorator/LowerCaseInputStream.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/04_java_io_decorator/JavaIoDecorator/LowerCaseInputStream.java -------------------------------------------------------------------------------- /04_java_io_decorator/JavaIoDecorator/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/04_java_io_decorator/JavaIoDecorator/readme.md -------------------------------------------------------------------------------- /04_java_io_decorator/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/04_java_io_decorator/readme.md -------------------------------------------------------------------------------- /05_pizza_store/PizzaStore/ChicagoPizzaStore.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/05_pizza_store/PizzaStore/ChicagoPizzaStore.java -------------------------------------------------------------------------------- /05_pizza_store/PizzaStore/ChicagoStyleCheesePizza.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/05_pizza_store/PizzaStore/ChicagoStyleCheesePizza.java -------------------------------------------------------------------------------- /05_pizza_store/PizzaStore/ChicagoStylePepperoniPizza.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/05_pizza_store/PizzaStore/ChicagoStylePepperoniPizza.java -------------------------------------------------------------------------------- /05_pizza_store/PizzaStore/NYPizzaStore.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/05_pizza_store/PizzaStore/NYPizzaStore.java -------------------------------------------------------------------------------- /05_pizza_store/PizzaStore/NYStyleCheesePizza.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/05_pizza_store/PizzaStore/NYStyleCheesePizza.java -------------------------------------------------------------------------------- /05_pizza_store/PizzaStore/NYStylePepperoniPizza.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/05_pizza_store/PizzaStore/NYStylePepperoniPizza.java -------------------------------------------------------------------------------- /05_pizza_store/PizzaStore/Pizza.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/05_pizza_store/PizzaStore/Pizza.java -------------------------------------------------------------------------------- /05_pizza_store/PizzaStore/PizzaStore.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/05_pizza_store/PizzaStore/PizzaStore.java -------------------------------------------------------------------------------- /05_pizza_store/PizzaStore/PizzaTestDrive.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/05_pizza_store/PizzaStore/PizzaTestDrive.java -------------------------------------------------------------------------------- /05_pizza_store/PizzaStore/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/05_pizza_store/PizzaStore/readme.md -------------------------------------------------------------------------------- /05_pizza_store/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/05_pizza_store/readme.md -------------------------------------------------------------------------------- /06_home_automation/CeilingFan/CeilingFan.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/CeilingFan/CeilingFan.java -------------------------------------------------------------------------------- /06_home_automation/CeilingFan/CeilingFanHighCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/CeilingFan/CeilingFanHighCommand.java -------------------------------------------------------------------------------- /06_home_automation/CeilingFan/CeilingFanMediumCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/CeilingFan/CeilingFanMediumCommand.java -------------------------------------------------------------------------------- /06_home_automation/CeilingFan/CeilingFanOffCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/CeilingFan/CeilingFanOffCommand.java -------------------------------------------------------------------------------- /06_home_automation/CeilingFan/Command.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/CeilingFan/Command.java -------------------------------------------------------------------------------- /06_home_automation/CeilingFan/NoCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/CeilingFan/NoCommand.java -------------------------------------------------------------------------------- /06_home_automation/CeilingFan/RemoteControlWithUndo.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/CeilingFan/RemoteControlWithUndo.java -------------------------------------------------------------------------------- /06_home_automation/CeilingFan/RemoteLoader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/CeilingFan/RemoteLoader.java -------------------------------------------------------------------------------- /06_home_automation/CeilingFan/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/CeilingFan/readme.md -------------------------------------------------------------------------------- /06_home_automation/CommandObject/Command.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/CommandObject/Command.java -------------------------------------------------------------------------------- /06_home_automation/CommandObject/Light.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/CommandObject/Light.java -------------------------------------------------------------------------------- /06_home_automation/CommandObject/LightOnCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/CommandObject/LightOnCommand.java -------------------------------------------------------------------------------- /06_home_automation/CommandObject/RemoteControlTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/CommandObject/RemoteControlTest.java -------------------------------------------------------------------------------- /06_home_automation/CommandObject/SimpleRemoteControl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/CommandObject/SimpleRemoteControl.java -------------------------------------------------------------------------------- /06_home_automation/CommandObject/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/CommandObject/readme.md -------------------------------------------------------------------------------- /06_home_automation/RemoteControl/Command.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/RemoteControl/Command.java -------------------------------------------------------------------------------- /06_home_automation/RemoteControl/Light.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/RemoteControl/Light.java -------------------------------------------------------------------------------- /06_home_automation/RemoteControl/LightOffCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/RemoteControl/LightOffCommand.java -------------------------------------------------------------------------------- /06_home_automation/RemoteControl/LightOnCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/RemoteControl/LightOnCommand.java -------------------------------------------------------------------------------- /06_home_automation/RemoteControl/NoCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/RemoteControl/NoCommand.java -------------------------------------------------------------------------------- /06_home_automation/RemoteControl/RemoteControl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/RemoteControl/RemoteControl.java -------------------------------------------------------------------------------- /06_home_automation/RemoteControl/RemoteLoader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/RemoteControl/RemoteLoader.java -------------------------------------------------------------------------------- /06_home_automation/RemoteControl/Stereo.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/RemoteControl/Stereo.java -------------------------------------------------------------------------------- /06_home_automation/RemoteControl/StereoOffWithCDCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/RemoteControl/StereoOffWithCDCommand.java -------------------------------------------------------------------------------- /06_home_automation/RemoteControl/StereoOnWithCDCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/RemoteControl/StereoOnWithCDCommand.java -------------------------------------------------------------------------------- /06_home_automation/RemoteControl/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/RemoteControl/readme.md -------------------------------------------------------------------------------- /06_home_automation/RemoteControlWithUndo/Command.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/RemoteControlWithUndo/Command.java -------------------------------------------------------------------------------- /06_home_automation/RemoteControlWithUndo/Light.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/RemoteControlWithUndo/Light.java -------------------------------------------------------------------------------- /06_home_automation/RemoteControlWithUndo/LightOffCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/RemoteControlWithUndo/LightOffCommand.java -------------------------------------------------------------------------------- /06_home_automation/RemoteControlWithUndo/LightOnCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/RemoteControlWithUndo/LightOnCommand.java -------------------------------------------------------------------------------- /06_home_automation/RemoteControlWithUndo/NoCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/RemoteControlWithUndo/NoCommand.java -------------------------------------------------------------------------------- /06_home_automation/RemoteControlWithUndo/RemoteControlWithUndo.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/RemoteControlWithUndo/RemoteControlWithUndo.java -------------------------------------------------------------------------------- /06_home_automation/RemoteControlWithUndo/RemoteLoader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/RemoteControlWithUndo/RemoteLoader.java -------------------------------------------------------------------------------- /06_home_automation/RemoteControlWithUndo/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/RemoteControlWithUndo/readme.md -------------------------------------------------------------------------------- /06_home_automation/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/06_home_automation/readme.md -------------------------------------------------------------------------------- /07_duck_adapter/DuckAdapter/Duck.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/07_duck_adapter/DuckAdapter/Duck.java -------------------------------------------------------------------------------- /07_duck_adapter/DuckAdapter/DuckTestDrive.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/07_duck_adapter/DuckAdapter/DuckTestDrive.java -------------------------------------------------------------------------------- /07_duck_adapter/DuckAdapter/MallardDuck.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/07_duck_adapter/DuckAdapter/MallardDuck.java -------------------------------------------------------------------------------- /07_duck_adapter/DuckAdapter/Turkey.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/07_duck_adapter/DuckAdapter/Turkey.java -------------------------------------------------------------------------------- /07_duck_adapter/DuckAdapter/TurkeyAdapter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/07_duck_adapter/DuckAdapter/TurkeyAdapter.java -------------------------------------------------------------------------------- /07_duck_adapter/DuckAdapter/WildTurkey.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/07_duck_adapter/DuckAdapter/WildTurkey.java -------------------------------------------------------------------------------- /07_duck_adapter/DuckAdapter/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/07_duck_adapter/DuckAdapter/readme.md -------------------------------------------------------------------------------- /07_duck_adapter/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/07_duck_adapter/readme.md -------------------------------------------------------------------------------- /08_home_theater_facade/HomeTheater/Amplifier.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/08_home_theater_facade/HomeTheater/Amplifier.java -------------------------------------------------------------------------------- /08_home_theater_facade/HomeTheater/CdPlayer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/08_home_theater_facade/HomeTheater/CdPlayer.java -------------------------------------------------------------------------------- /08_home_theater_facade/HomeTheater/DvdPlayer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/08_home_theater_facade/HomeTheater/DvdPlayer.java -------------------------------------------------------------------------------- /08_home_theater_facade/HomeTheater/HomeTheaterFacade.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/08_home_theater_facade/HomeTheater/HomeTheaterFacade.java -------------------------------------------------------------------------------- /08_home_theater_facade/HomeTheater/HomeTheaterTestDrive.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/08_home_theater_facade/HomeTheater/HomeTheaterTestDrive.java -------------------------------------------------------------------------------- /08_home_theater_facade/HomeTheater/PopcornPopper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/08_home_theater_facade/HomeTheater/PopcornPopper.java -------------------------------------------------------------------------------- /08_home_theater_facade/HomeTheater/Projector.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/08_home_theater_facade/HomeTheater/Projector.java -------------------------------------------------------------------------------- /08_home_theater_facade/HomeTheater/Screen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/08_home_theater_facade/HomeTheater/Screen.java -------------------------------------------------------------------------------- /08_home_theater_facade/HomeTheater/TheaterLights.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/08_home_theater_facade/HomeTheater/TheaterLights.java -------------------------------------------------------------------------------- /08_home_theater_facade/HomeTheater/Tuner.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/08_home_theater_facade/HomeTheater/Tuner.java -------------------------------------------------------------------------------- /08_home_theater_facade/HomeTheater/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/08_home_theater_facade/HomeTheater/readme.md -------------------------------------------------------------------------------- /08_home_theater_facade/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/08_home_theater_facade/readme.md -------------------------------------------------------------------------------- /09_caffeine_beverage_with_hook/CaffeineBeverageWithHook/BeverageTestDrive.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/09_caffeine_beverage_with_hook/CaffeineBeverageWithHook/BeverageTestDrive.java -------------------------------------------------------------------------------- /09_caffeine_beverage_with_hook/CaffeineBeverageWithHook/CaffeineBeverageWithHook.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/09_caffeine_beverage_with_hook/CaffeineBeverageWithHook/CaffeineBeverageWithHook.java -------------------------------------------------------------------------------- /09_caffeine_beverage_with_hook/CaffeineBeverageWithHook/CoffeeWithHook.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/09_caffeine_beverage_with_hook/CaffeineBeverageWithHook/CoffeeWithHook.java -------------------------------------------------------------------------------- /09_caffeine_beverage_with_hook/CaffeineBeverageWithHook/TeaWithHook.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/09_caffeine_beverage_with_hook/CaffeineBeverageWithHook/TeaWithHook.java -------------------------------------------------------------------------------- /09_caffeine_beverage_with_hook/CaffeineBeverageWithHook/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/09_caffeine_beverage_with_hook/CaffeineBeverageWithHook/readme.md -------------------------------------------------------------------------------- /09_caffeine_beverage_with_hook/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/09_caffeine_beverage_with_hook/readme.md -------------------------------------------------------------------------------- /10_duck_sorting/DuckSorting/Duck.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/10_duck_sorting/DuckSorting/Duck.java -------------------------------------------------------------------------------- /10_duck_sorting/DuckSorting/DuckSortTestDrive.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/10_duck_sorting/DuckSorting/DuckSortTestDrive.java -------------------------------------------------------------------------------- /10_duck_sorting/DuckSorting/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/10_duck_sorting/DuckSorting/readme.md -------------------------------------------------------------------------------- /10_duck_sorting/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/10_duck_sorting/readme.md -------------------------------------------------------------------------------- /11_iterator_pattern/Cafe/CafeMenu.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/Cafe/CafeMenu.java -------------------------------------------------------------------------------- /11_iterator_pattern/Cafe/DinerMenu.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/Cafe/DinerMenu.java -------------------------------------------------------------------------------- /11_iterator_pattern/Cafe/DinerMenuIterator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/Cafe/DinerMenuIterator.java -------------------------------------------------------------------------------- /11_iterator_pattern/Cafe/Menu.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/Cafe/Menu.java -------------------------------------------------------------------------------- /11_iterator_pattern/Cafe/MenuTestDrive.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/Cafe/MenuTestDrive.java -------------------------------------------------------------------------------- /11_iterator_pattern/Cafe/PancakeHouseMenu.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/Cafe/PancakeHouseMenu.java -------------------------------------------------------------------------------- /11_iterator_pattern/Cafe/Waitress.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/Cafe/Waitress.java -------------------------------------------------------------------------------- /11_iterator_pattern/Cafe/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/Cafe/readme.md -------------------------------------------------------------------------------- /11_iterator_pattern/DinerAndPancakeHouseIterator/DinerMenu.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/DinerAndPancakeHouseIterator/DinerMenu.java -------------------------------------------------------------------------------- /11_iterator_pattern/DinerAndPancakeHouseIterator/DinerMenuIterator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/DinerAndPancakeHouseIterator/DinerMenuIterator.java -------------------------------------------------------------------------------- /11_iterator_pattern/DinerAndPancakeHouseIterator/Iterator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/DinerAndPancakeHouseIterator/Iterator.java -------------------------------------------------------------------------------- /11_iterator_pattern/DinerAndPancakeHouseIterator/MenuItem.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/DinerAndPancakeHouseIterator/MenuItem.java -------------------------------------------------------------------------------- /11_iterator_pattern/DinerAndPancakeHouseIterator/MenuTestDrive.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/DinerAndPancakeHouseIterator/MenuTestDrive.java -------------------------------------------------------------------------------- /11_iterator_pattern/DinerAndPancakeHouseIterator/PancakeHouseMenu.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/DinerAndPancakeHouseIterator/PancakeHouseMenu.java -------------------------------------------------------------------------------- /11_iterator_pattern/DinerAndPancakeHouseIterator/PancakeMenuIterator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/DinerAndPancakeHouseIterator/PancakeMenuIterator.java -------------------------------------------------------------------------------- /11_iterator_pattern/DinerAndPancakeHouseIterator/Waitress.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/DinerAndPancakeHouseIterator/Waitress.java -------------------------------------------------------------------------------- /11_iterator_pattern/DinerAndPancakeHouseIterator/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/DinerAndPancakeHouseIterator/readme.md -------------------------------------------------------------------------------- /11_iterator_pattern/MenuComposite/Menu.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/MenuComposite/Menu.java -------------------------------------------------------------------------------- /11_iterator_pattern/MenuComposite/MenuComponent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/MenuComposite/MenuComponent.java -------------------------------------------------------------------------------- /11_iterator_pattern/MenuComposite/MenuItem.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/MenuComposite/MenuItem.java -------------------------------------------------------------------------------- /11_iterator_pattern/MenuComposite/MenuTestDrive.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/MenuComposite/MenuTestDrive.java -------------------------------------------------------------------------------- /11_iterator_pattern/MenuComposite/Waitress.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/MenuComposite/Waitress.java -------------------------------------------------------------------------------- /11_iterator_pattern/MenuComposite/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/MenuComposite/readme.md -------------------------------------------------------------------------------- /11_iterator_pattern/MenuCompositeWithIterator/CompositeIterator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/MenuCompositeWithIterator/CompositeIterator.java -------------------------------------------------------------------------------- /11_iterator_pattern/MenuCompositeWithIterator/Menu.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/MenuCompositeWithIterator/Menu.java -------------------------------------------------------------------------------- /11_iterator_pattern/MenuCompositeWithIterator/MenuComponent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/MenuCompositeWithIterator/MenuComponent.java -------------------------------------------------------------------------------- /11_iterator_pattern/MenuCompositeWithIterator/MenuItem.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/MenuCompositeWithIterator/MenuItem.java -------------------------------------------------------------------------------- /11_iterator_pattern/MenuCompositeWithIterator/MenuTestDrive.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/MenuCompositeWithIterator/MenuTestDrive.java -------------------------------------------------------------------------------- /11_iterator_pattern/MenuCompositeWithIterator/NullIterator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/MenuCompositeWithIterator/NullIterator.java -------------------------------------------------------------------------------- /11_iterator_pattern/MenuCompositeWithIterator/Waitress.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/MenuCompositeWithIterator/Waitress.java -------------------------------------------------------------------------------- /11_iterator_pattern/MenuCompositeWithIterator/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/MenuCompositeWithIterator/readme.md -------------------------------------------------------------------------------- /11_iterator_pattern/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/11_iterator_pattern/readme.md -------------------------------------------------------------------------------- /12_gumball_machine/GumballMachine/GumballMachine.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/GumballMachine/GumballMachine.java -------------------------------------------------------------------------------- /12_gumball_machine/GumballMachine/GumballMachineTestDrive.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/GumballMachine/GumballMachineTestDrive.java -------------------------------------------------------------------------------- /12_gumball_machine/GumballMachine/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/GumballMachine/readme.md -------------------------------------------------------------------------------- /12_gumball_machine/GumballMachineOneInTenGame/GumballMachine.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/GumballMachineOneInTenGame/GumballMachine.java -------------------------------------------------------------------------------- /12_gumball_machine/GumballMachineOneInTenGame/GumballMachineTestDrive.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/GumballMachineOneInTenGame/GumballMachineTestDrive.java -------------------------------------------------------------------------------- /12_gumball_machine/GumballMachineOneInTenGame/HasQuarterState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/GumballMachineOneInTenGame/HasQuarterState.java -------------------------------------------------------------------------------- /12_gumball_machine/GumballMachineOneInTenGame/NoQuarterState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/GumballMachineOneInTenGame/NoQuarterState.java -------------------------------------------------------------------------------- /12_gumball_machine/GumballMachineOneInTenGame/SoldOutState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/GumballMachineOneInTenGame/SoldOutState.java -------------------------------------------------------------------------------- /12_gumball_machine/GumballMachineOneInTenGame/SoldState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/GumballMachineOneInTenGame/SoldState.java -------------------------------------------------------------------------------- /12_gumball_machine/GumballMachineOneInTenGame/State.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/GumballMachineOneInTenGame/State.java -------------------------------------------------------------------------------- /12_gumball_machine/GumballMachineOneInTenGame/WinnerState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/GumballMachineOneInTenGame/WinnerState.java -------------------------------------------------------------------------------- /12_gumball_machine/GumballMachineOneInTenGame/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/GumballMachineOneInTenGame/readme.md -------------------------------------------------------------------------------- /12_gumball_machine/GumballMachineWithStatePattern/GumballMachine.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/GumballMachineWithStatePattern/GumballMachine.java -------------------------------------------------------------------------------- /12_gumball_machine/GumballMachineWithStatePattern/HasQuarterState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/GumballMachineWithStatePattern/HasQuarterState.java -------------------------------------------------------------------------------- /12_gumball_machine/GumballMachineWithStatePattern/NoQuarterState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/GumballMachineWithStatePattern/NoQuarterState.java -------------------------------------------------------------------------------- /12_gumball_machine/GumballMachineWithStatePattern/SoldOutState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/GumballMachineWithStatePattern/SoldOutState.java -------------------------------------------------------------------------------- /12_gumball_machine/GumballMachineWithStatePattern/SoldState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/GumballMachineWithStatePattern/SoldState.java -------------------------------------------------------------------------------- /12_gumball_machine/GumballMachineWithStatePattern/State.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/GumballMachineWithStatePattern/State.java -------------------------------------------------------------------------------- /12_gumball_machine/GumballMachineWithStatePattern/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/GumballMachineWithStatePattern/readme.md -------------------------------------------------------------------------------- /12_gumball_machine/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/12_gumball_machine/readme.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/README.md -------------------------------------------------------------------------------- /baking_with_oo_goodness.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/baking_with_oo_goodness.md -------------------------------------------------------------------------------- /being_adaptive.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/being_adaptive.md -------------------------------------------------------------------------------- /controlling_object_access.md: -------------------------------------------------------------------------------- 1 | # Controlling Object Access 2 | 3 | > The Proxy pattern 4 | -------------------------------------------------------------------------------- /decorating_objects.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/decorating_objects.md -------------------------------------------------------------------------------- /design_patterns.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/design_patterns.md -------------------------------------------------------------------------------- /design_principles.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/design_principles.md -------------------------------------------------------------------------------- /encapsulating_algorithms.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/encapsulating_algorithms.md -------------------------------------------------------------------------------- /encapsulating_invocation.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/encapsulating_invocation.md -------------------------------------------------------------------------------- /keeping_your_objects_in_the_know.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/keeping_your_objects_in_the_know.md -------------------------------------------------------------------------------- /one_of_a_kind_objects.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/one_of_a_kind_objects.md -------------------------------------------------------------------------------- /the_state_of_things.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/the_state_of_things.md -------------------------------------------------------------------------------- /welcome_to_design_patterns.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/welcome_to_design_patterns.md -------------------------------------------------------------------------------- /well_managed_collections.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefoxp/head-first-design-patterns/HEAD/well_managed_collections.md --------------------------------------------------------------------------------