实例介绍
第1章至第11章陆续介绍了设计模式:Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton、Command、Adapter、Facade、TemplatMethod、Iterator、Composite、State、Proxy。
【实例截图】
【核心代码】
Head-First-Design-Patterns-master
└── Head-First-Design-Patterns-master
├── heatindex.txt
├── README.md
├── src
│ └── headfirst
│ └── designpatterns
│ ├── adapter
│ │ ├── ducks
│ │ │ ├── DuckAdapter.java
│ │ │ ├── Duck.java
│ │ │ ├── DuckTestDrive.java
│ │ │ ├── MallardDuck.java
│ │ │ ├── TurkeyAdapter.java
│ │ │ ├── Turkey.java
│ │ │ ├── TurkeyTestDrive.java
│ │ │ └── WildTurkey.java
│ │ └── iterenum
│ │ ├── EI.java
│ │ ├── EnumerationIterator.java
│ │ ├── EnumerationIteratorTestDrive.java
│ │ ├── IteratorEnumeration.java
│ │ └── IteratorEnumerationTestDrive.java
│ ├── collections
│ │ ├── Collections.java
│ │ ├── iterator
│ │ │ ├── Cafe.java
│ │ │ ├── DinerMenuIterator.java
│ │ │ ├── DinerMenu.java
│ │ │ ├── Iterator.java
│ │ │ ├── Menu.java
│ │ │ ├── PancakeHouseMenuIterator.java
│ │ │ └── PancakeHouseMenu.java
│ │ └── iterator_builtin
│ │ ├── Cafe.java
│ │ ├── DinerMenuIterator.java
│ │ ├── DinerMenu.java
│ │ ├── Menu.java
│ │ └── PancakeHouseMenu.java
│ ├── combined
│ │ └── djview
│ │ ├── BeatBar.java
│ │ ├── BeatController.java
│ │ ├── BeatModelInterface.java
│ │ ├── BeatModel.java
│ │ ├── BeatObserver.java
│ │ ├── BPMObserver.java
│ │ ├── ControllerInterface.java
│ │ ├── DJTestDrive.java
│ │ ├── DJView.java
│ │ ├── DJViewServlet.java
│ │ ├── HeartAdapter.java
│ │ ├── HeartController.java
│ │ ├── HeartModelInterface.java
│ │ ├── HeartModel.java
│ │ ├── HeartTestDrive.java
│ │ ├── jsp
│ │ │ ├── djview.jsp
│ │ │ ├── index.html
│ │ │ └── WEB-INF
│ │ │ └── web.xml
│ │ └── README.md
│ ├── combining
│ │ ├── adapter
│ │ │ ├── DecoyDuck.java
│ │ │ ├── DuckCall.java
│ │ │ ├── DuckSimulator.java
│ │ │ ├── GooseAdapter.java
│ │ │ ├── Goose.java
│ │ │ ├── MallardDuck.java
│ │ │ ├── Quackable.java
│ │ │ ├── RedheadDuck.java
│ │ │ └── RubberDuck.java
│ │ ├── composite
│ │ │ ├── AbstractDuckFactory.java
│ │ │ ├── CountingDuckFactory.java
│ │ │ ├── DecoyDuck.java
│ │ │ ├── DuckCall.java
│ │ │ ├── DuckFactory.java
│ │ │ ├── DuckSimulator.java
│ │ │ ├── Flock.java
│ │ │ ├── GooseAdapter.java
│ │ │ ├── Goose.java
│ │ │ ├── MallardDuck.java
│ │ │ ├── Quackable.java
│ │ │ ├── QuackCounter.java
│ │ │ ├── RedheadDuck.java
│ │ │ └── RubberDuck.java
│ │ ├── decorator
│ │ │ ├── DecoyDuck.java
│ │ │ ├── DuckCall.java
│ │ │ ├── DuckSimulator.java
│ │ │ ├── GooseAdapter.java
│ │ │ ├── Goose.java
│ │ │ ├── MallardDuck.java
│ │ │ ├── Quackable.java
│ │ │ ├── QuackCounter.java
│ │ │ ├── RedheadDuck.java
│ │ │ └── RubberDuck.java
│ │ ├── ducks
│ │ │ ├── DecoyDuck.java
│ │ │ ├── DuckCall.java
│ │ │ ├── DuckSimulator.java
│ │ │ ├── MallardDuck.java
│ │ │ ├── Quackable.java
│ │ │ ├── RedheadDuck.java
│ │ │ └── RubberDuck.java
│ │ ├── factory
│ │ │ ├── AbstractDuckFactory.java
│ │ │ ├── CountingDuckFactory.java
│ │ │ ├── DecoyDuck.java
│ │ │ ├── DuckCall.java
│ │ │ ├── DuckFactory.java
│ │ │ ├── DuckSimulator.java
│ │ │ ├── GooseAdapter.java
│ │ │ ├── Goose.java
│ │ │ ├── MallardDuck.java
│ │ │ ├── Quackable.java
│ │ │ ├── QuackCounter.java
│ │ │ ├── RedheadDuck.java
│ │ │ └── RubberDuck.java
│ │ └── observer
│ │ ├── AbstractDuckFactory.java
│ │ ├── CountingDuckFactory.java
│ │ ├── DecoyDuck.java
│ │ ├── DuckCall.java
│ │ ├── DuckFactory.java
│ │ ├── DuckSimulator.java
│ │ ├── Flock.java
│ │ ├── GooseAdapter.java
│ │ ├── Goose.java
│ │ ├── MallardDuck.java
│ │ ├── Observable.java
│ │ ├── Observer.java
│ │ ├── Quackable.java
│ │ ├── QuackCounter.java
│ │ ├── QuackObservable.java
│ │ ├── Quackologist.java
│ │ ├── RedheadDuck.java
│ │ └── RubberDuck.java
│ ├── command
│ │ ├── party
│ │ │ ├── CeilingFanHighCommand.java
│ │ │ ├── CeilingFan.java
│ │ │ ├── CeilingFanMediumCommand.java
│ │ │ ├── CeilingFanOffCommand.java
│ │ │ ├── Command.java
│ │ │ ├── Hottub.java
│ │ │ ├── HottubOffCommand.java
│ │ │ ├── HottubOnCommand.java
│ │ │ ├── Light.java
│ │ │ ├── LightOffCommand.java
│ │ │ ├── LightOnCommand.java
│ │ │ ├── LivingroomLightOffCommand.java
│ │ │ ├── LivingroomLightOnCommand.java
│ │ │ ├── MacroCommand.java
│ │ │ ├── NoCommand.java
│ │ │ ├── RemoteControl.java
│ │ │ ├── RemoteLoader.java
│ │ │ ├── Stereo.java
│ │ │ ├── StereoOffCommand.java
│ │ │ ├── StereoOnCommand.java
│ │ │ ├── StereoOnWithCDCommand.java
│ │ │ ├── TV.java
│ │ │ ├── TVOffCommand.java
│ │ │ └── TVOnCommand.java
│ │ ├── remote
│ │ │ ├── CeilingFan.java
│ │ │ ├── CeilingFanOffCommand.java
│ │ │ ├── CeilingFanOnCommand.java
│ │ │ ├── Command.java
│ │ │ ├── GarageDoorDownCommand.java
│ │ │ ├── GarageDoor.java
│ │ │ ├── GarageDoorUpCommand.java
│ │ │ ├── Hottub.java
│ │ │ ├── HottubOffCommand.java
│ │ │ ├── HottubOnCommand.java
│ │ │ ├── Light.java
│ │ │ ├── LightOffCommand.java
│ │ │ ├── LightOnCommand.java
│ │ │ ├── LivingroomLightOffCommand.java
│ │ │ ├── LivingroomLightOnCommand.java
│ │ │ ├── NoCommand.java
│ │ │ ├── RemoteControl.java
│ │ │ ├── RemoteLoader.java
│ │ │ ├── Stereo.java
│ │ │ ├── StereoOffCommand.java
│ │ │ ├── StereoOnWithCDCommand.java
│ │ │ └── TV.java
│ │ ├── remoteWL
│ │ │ ├── CeilingFan.java
│ │ │ ├── Command.java
│ │ │ ├── GarageDoor.java
│ │ │ ├── Hottub.java
│ │ │ ├── Light.java
│ │ │ ├── RemoteControl.java
│ │ │ ├── RemoteLoader.java
│ │ │ ├── Stereo.java
│ │ │ └── TV.java
│ │ ├── simpleremote
│ │ │ ├── Command.java
│ │ │ ├── GarageDoor.java
│ │ │ ├── GarageDoorOpenCommand.java
│ │ │ ├── Light.java
│ │ │ ├── LightOffCommand.java
│ │ │ ├── LightOnCommand.java
│ │ │ ├── RemoteControlTest.java
│ │ │ └── SimpleRemoteControl.java
│ │ ├── simpleremoteWL
│ │ │ ├── Command.java
│ │ │ ├── GarageDoor.java
│ │ │ ├── Light.java
│ │ │ ├── RemoteControlTest.java
│ │ │ └── SimpleRemoteControl.java
│ │ └── undo
│ │ ├── CeilingFanHighCommand.java
│ │ ├── CeilingFan.java
│ │ ├── CeilingFanLowCommand.java
│ │ ├── CeilingFanMediumCommand.java
│ │ ├── CeilingFanOffCommand.java
│ │ ├── Command.java
│ │ ├── DimmerLightOffCommand.java
│ │ ├── DimmerLightOnCommand.java
│ │ ├── Light.java
│ │ ├── LightOffCommand.java
│ │ ├── LightOnCommand.java
│ │ ├── NoCommand.java
│ │ ├── RemoteControlWithUndo.java
│ │ └── RemoteLoader.java
│ ├── composite
│ │ ├── menu
│ │ │ ├── MenuComponent.java
│ │ │ ├── MenuItem.java
│ │ │ ├── Menu.java
│ │ │ ├── MenuTestDrive.java
│ │ │ └── Waitress.java
│ │ └── menuiterator
│ │ ├── CompositeIterator.java
│ │ ├── MenuComponent.java
│ │ ├── MenuItem.java
│ │ ├── Menu.java
│ │ ├── MenuTestDrive.java
│ │ ├── NullIterator.java
│ │ └── Waitress.java
│ ├── decorator
│ │ ├── io
│ │ │ ├── InputTest.java
│ │ │ └── LowerCaseInputStream.java
│ │ ├── starbuzz
│ │ │ ├── Beverage.java
│ │ │ ├── CondimentDecorator.java
│ │ │ ├── DarkRoast.java
│ │ │ ├── Decaf.java
│ │ │ ├── Espresso.java
│ │ │ ├── HouseBlend.java
│ │ │ ├── Milk.java
│ │ │ ├── Mocha.java
│ │ │ ├── Soy.java
│ │ │ ├── StarbuzzCoffee.java
│ │ │ └── Whip.java
│ │ └── starbuzzWithSizes
│ │ ├── Beverage.java
│ │ ├── CondimentDecorator.java
│ │ ├── DarkRoast.java
│ │ ├── Decaf.java
│ │ ├── Espresso.java
│ │ ├── HouseBlend.java
│ │ ├── Milk.java
│ │ ├── Mocha.java
│ │ ├── Soy.java
│ │ ├── StarbuzzCoffee.java
│ │ └── Whip.java
│ ├── ducks
│ │ ├── DuckAdapter.java
│ │ ├── Duck.java
│ │ ├── DuckTestDrive.java
│ │ ├── MallardDuck.java
│ │ ├── TurkeyAdapter.java
│ │ ├── Turkey.java
│ │ ├── TurkeyTestDrive.java
│ │ └── WildTurkey.java
│ ├── facade
│ │ └── hometheater
│ │ ├── Amplifier.java
│ │ ├── CdPlayer.java
│ │ ├── DvdPlayer.java
│ │ ├── HomeTheaterFacade.java
│ │ ├── HomeTheaterTestDrive.java
│ │ ├── PopcornPopper.java
│ │ ├── Projector.java
│ │ ├── Screen.java
│ │ ├── TheaterLights.java
│ │ └── Tuner.java
│ ├── factory
│ │ ├── pizzaaf
│ │ │ ├── BlackOlives.java
│ │ │ ├── Cheese.java
│ │ │ ├── CheesePizza.java
│ │ │ ├── ChicagoPizzaIngredientFactory.java
│ │ │ ├── ChicagoPizzaStore.java
│ │ │ ├── ClamPizza.java
│ │ │ ├── Clams.java
│ │ │ ├── Dough.java
│ │ │ ├── Eggplant.java
│ │ │ ├── FreshClams.java
│ │ │ ├── FrozenClams.java
│ │ │ ├── Garlic.java
│ │ │ ├── MarinaraSauce.java
│ │ │ ├── MozzarellaCheese.java
│ │ │ ├── Mushroom.java
│ │ │ ├── NYPizzaIngredientFactory.java
│ │ │ ├── NYPizzaStore.java
│ │ │ ├── Onion.java
│ │ │ ├── ParmesanCheese.java
│ │ │ ├── Pepperoni.java
│ │ │ ├── PepperoniPizza.java
│ │ │ ├── PizzaIngredientFactory.java
│ │ │ ├── Pizza.java
│ │ │ ├── PizzaStore.java
│ │ │ ├── PizzaTestDrive.java
│ │ │ ├── PlumTomatoSauce.java
│ │ │ ├── RedPepper.java
│ │ │ ├── ReggianoCheese.java
│ │ │ ├── Sauce.java
│ │ │ ├── SlicedPepperoni.java
│ │ │ ├── Spinach.java
│ │ │ ├── ThickCrustDough.java
│ │ │ ├── ThinCrustDough.java
│ │ │ ├── VeggiePizza.java
│ │ │ └── Veggies.java
│ │ ├── pizzafm
│ │ │ ├── ChicagoPizzaStore.java
│ │ │ ├── ChicagoStyleCheesePizza.java
│ │ │ ├── ChicagoStyleClamPizza.java
│ │ │ ├── ChicagoStylePepperoniPizza.java
│ │ │ ├── ChicagoStyleVeggiePizza.java
│ │ │ ├── DependentPizzaStore.java
│ │ │ ├── NYPizzaStore.java
│ │ │ ├── NYStyleCheesePizza.java
│ │ │ ├── NYStyleClamPizza.java
│ │ │ ├── NYStylePepperoniPizza.java
│ │ │ ├── NYStyleVeggiePizza.java
│ │ │ ├── Pizza.java
│ │ │ ├── PizzaStore.java
│ │ │ └── PizzaTestDrive.java
│ │ └── pizzas
│ │ ├── CheesePizza.java
│ │ ├── ClamPizza.java
│ │ ├── PepperoniPizza.java
│ │ ├── Pizza.java
│ │ ├── PizzaStore.java
│ │ ├── PizzaTestDrive.java
│ │ ├── SimplePizzaFactory.java
│ │ └── VeggiePizza.java
│ ├── iterator
│ │ ├── dinermerger
│ │ │ ├── AlternatingDinerMenuIterator.java
│ │ │ ├── ArrayIterator.java
│ │ │ ├── ArrayListIterator.java
│ │ │ ├── DinerMenuIterator.java
│ │ │ ├── DinerMenu.java
│ │ │ ├── Iterator.java
│ │ │ ├── MenuItem.java
│ │ │ ├── Menu.java
│ │ │ ├── MenuTestDrive.java
│ │ │ ├── PancakeHouseMenuIterator.java
│ │ │ ├── PancakeHouseMenu.java
│ │ │ └── Waitress.java
│ │ ├── dinermergercafe
│ │ │ ├── AlternatingDinerMenuIterator.java
│ │ │ ├── CafeMenu.java
│ │ │ ├── DinerMenuIterator.java
│ │ │ ├── DinerMenu.java
│ │ │ ├── MenuItem.java
│ │ │ ├── Menu.java
│ │ │ ├── MenuTestDrive.java
│ │ │ ├── PancakeHouseMenu.java
│ │ │ └── Waitress.java
│ │ ├── dinermergeri
│ │ │ ├── AlternatingDinerMenuIterator.java
│ │ │ ├── DinerMenuIterator.java
│ │ │ ├── DinerMenu.java
│ │ │ ├── MenuItem.java
│ │ │ ├── Menu.java
│ │ │ ├── MenuTestDrive.java
│ │ │ ├── PancakeHouseMenu.java
│ │ │ └── Waitress.java
│ │ └── transition
│ │ ├── DinerMenuIterator.java
│ │ ├── DinerMenu.java
│ │ ├── MenuItem.java
│ │ ├── Menu.java
│ │ ├── MenuTestDrive.java
│ │ ├── PancakeHouseMenu.java
│ │ └── Waitress.java
│ ├── iterenum
│ │ ├── EI.java
│ │ ├── EnumerationIterator.java
│ │ ├── EnumerationIteratorTestDrive.java
│ │ ├── IteratorEnumeration.java
│ │ └── IteratorEnumerationTestDrive.java
│ ├── observer
│ │ ├── swing
│ │ │ └── SwingObserverExample.java
│ │ ├── weather
│ │ │ ├── CurrentConditionsDisplay.java
│ │ │ ├── DisplayElement.java
│ │ │ ├── ForecastDisplay.java
│ │ │ ├── HeatIndexDisplay.java
│ │ │ ├── Observer.java
│ │ │ ├── StatisticsDisplay.java
│ │ │ ├── Subject.java
│ │ │ ├── WeatherData.java
│ │ │ ├── WeatherStationHeatIndex.java
│ │ │ └── WeatherStation.java
│ │ └── weatherobservable
│ │ ├── CurrentConditionsDisplay.java
│ │ ├── DisplayElement.java
│ │ ├── ForecastDisplay.java
│ │ ├── HeatIndexDisplay.java
│ │ ├── StatisticsDisplay.java
│ │ ├── WeatherData.java
│ │ ├── WeatherStationHeatIndex.java
│ │ └── WeatherStation.java
│ ├── proxy
│ │ ├── gumball
│ │ │ ├── GumballMachine.java
│ │ │ ├── GumballMachineRemote.java
│ │ │ ├── GumballMachineTestDrive.java
│ │ │ ├── GumballMonitor.java
│ │ │ ├── GumballMonitorTestDrive.java
│ │ │ ├── HasQuarterState.java
│ │ │ ├── NoQuarterState.java
│ │ │ ├── README.md
│ │ │ ├── SoldOutState.java
│ │ │ ├── SoldState.java
│ │ │ ├── State.java
│ │ │ └── WinnerState.java
│ │ ├── gumballmonitor
│ │ │ ├── GumballMachine.java
│ │ │ ├── GumballMachineTestDrive.java
│ │ │ ├── GumballMonitor.java
│ │ │ ├── HasQuarterState.java
│ │ │ ├── NoQuarterState.java
│ │ │ ├── SoldOutState.java
│ │ │ ├── SoldState.java
│ │ │ ├── State.java
│ │ │ └── WinnerState.java
│ │ ├── javaproxy
│ │ │ ├── MatchMakingTestDrive.java
│ │ │ ├── NonOwnerInvocationHandler.java
│ │ │ ├── OwnerInvocationHandler.java
│ │ │ ├── PersonBeanImpl.java
│ │ │ └── PersonBean.java
│ │ └── virtualproxy
│ │ ├── ImageComponent.java
│ │ ├── ImageProxy.java
│ │ └── ImageProxyTestDrive.java
│ ├── singleton
│ │ ├── chocolate
│ │ │ ├── ChocolateBoiler.java
│ │ │ └── ChocolateController.java
│ │ ├── classic
│ │ │ ├── SingletonClient.java
│ │ │ └── Singleton.java
│ │ ├── dcl
│ │ │ ├── SingletonClient.java
│ │ │ └── Singleton.java
│ │ ├── stat
│ │ │ ├── SingletonClient.java
│ │ │ └── Singleton.java
│ │ ├── subclass
│ │ │ ├── CoolerSingleton.java
│ │ │ ├── HotterSingleton.java
│ │ │ ├── Singleton.java
│ │ │ └── SingletonTestDrive.java
│ │ └── threadsafe
│ │ ├── SingletonClient.java
│ │ └── Singleton.java
│ ├── state
│ │ ├── gumball
│ │ │ ├── GumballMachine.java
│ │ │ └── GumballMachineTestDrive.java
│ │ ├── gumballstate
│ │ │ ├── GumballMachine.java
│ │ │ ├── GumballMachineTestDrive.java
│ │ │ ├── HasQuarterState.java
│ │ │ ├── NoQuarterState.java
│ │ │ ├── SoldOutState.java
│ │ │ ├── SoldState.java
│ │ │ └── State.java
│ │ └── gumballstatewinner
│ │ ├── GumballMachine.java
│ │ ├── GumballMachineTestDrive.java
│ │ ├── HasQuarterState.java
│ │ ├── NoQuarterState.java
│ │ ├── SoldOutState.java
│ │ ├── SoldState.java
│ │ ├── State.java
│ │ └── WinnerState.java
│ ├── strategy
│ │ ├── DecoyDuck.java
│ │ ├── Duck.java
│ │ ├── FakeQuack.java
│ │ ├── FlyBehavior.java
│ │ ├── FlyNoWay.java
│ │ ├── FlyRocketPowered.java
│ │ ├── FlyWithWings.java
│ │ ├── MallardDuck.java
│ │ ├── MiniDuckSimulator1.java
│ │ ├── MiniDuckSimulator.java
│ │ ├── ModelDuck.java
│ │ ├── MuteQuack.java
│ │ ├── QuackBehavior.java
│ │ ├── Quack.java
│ │ ├── RedHeadDuck.java
│ │ ├── RubberDuck.java
│ │ └── Squeak.java
│ └── templatemethod
│ ├── applet
│ │ ├── AppletSource.txt
│ │ └── MyApplet.java
│ ├── barista
│ │ ├── BeverageTestDrive.java
│ │ ├── CaffeineBeverage.java
│ │ ├── CaffeineBeverageWithHook.java
│ │ ├── Coffee.java
│ │ ├── CoffeeWithHook.java
│ │ ├── Tea.java
│ │ └── TeaWithHook.java
│ ├── frame
│ │ └── MyFrame.java
│ ├── simplebarista
│ │ ├── Barista.java
│ │ ├── Coffee.java
│ │ └── Tea.java
│ └── sort
│ ├── Duck.java
│ └── DuckSortTestDrive.java
├── target
│ └── production
│ └── Head-First-Design-Patterns-master
│ └── headfirst
│ └── designpatterns
│ ├── adapter
│ │ ├── ducks
│ │ │ ├── DuckAdapter.class
│ │ │ ├── Duck.class
│ │ │ ├── DuckTestDrive.class
│ │ │ ├── MallardDuck.class
│ │ │ ├── TurkeyAdapter.class
│ │ │ ├── Turkey.class
│ │ │ ├── TurkeyTestDrive.class
│ │ │ └── WildTurkey.class
│ │ └── iterenum
│ │ ├── EI.class
│ │ ├── EnumerationIterator.class
│ │ ├── EnumerationIteratorTestDrive.class
│ │ ├── IteratorEnumeration.class
│ │ └── IteratorEnumerationTestDrive.class
│ ├── collections
│ │ ├── Collections.class
│ │ ├── iterator
│ │ │ ├── Cafe.class
│ │ │ ├── DinerMenu.class
│ │ │ ├── DinerMenuIterator.class
│ │ │ ├── Iterator.class
│ │ │ ├── Menu.class
│ │ │ ├── PancakeHouseMenu.class
│ │ │ └── PancakeHouseMenuIterator.class
│ │ └── iterator_builtin
│ │ ├── Cafe.class
│ │ ├── DinerMenu.class
│ │ ├── DinerMenuIterator.class
│ │ ├── Menu.class
│ │ └── PancakeHouseMenu.class
│ ├── combined
│ │ └── djview
│ │ ├── BeatBar.class
│ │ ├── BeatController.class
│ │ ├── BeatModel.class
│ │ ├── BeatModelInterface.class
│ │ ├── BeatObserver.class
│ │ ├── BPMObserver.class
│ │ ├── ControllerInterface.class
│ │ ├── DJTestDrive.class
│ │ ├── DJView$1.class
│ │ ├── DJView$2.class
│ │ ├── DJView$3.class
│ │ ├── DJView.class
│ │ ├── DJViewServlet.class
│ │ ├── HeartAdapter.class
│ │ ├── HeartController.class
│ │ ├── HeartModel.class
│ │ ├── HeartModelInterface.class
│ │ ├── HeartTestDrive.class
│ │ ├── jsp
│ │ │ ├── djview.jsp
│ │ │ ├── index.html
│ │ │ └── WEB-INF
│ │ │ └── web.xml
│ │ └── README.md
│ ├── combining
│ │ ├── adapter
│ │ │ ├── DecoyDuck.class
│ │ │ ├── DuckCall.class
│ │ │ ├── DuckSimulator.class
│ │ │ ├── GooseAdapter.class
│ │ │ ├── Goose.class
│ │ │ ├── MallardDuck.class
│ │ │ ├── Quackable.class
│ │ │ ├── RedheadDuck.class
│ │ │ └── RubberDuck.class
│ │ ├── composite
│ │ │ ├── AbstractDuckFactory.class
│ │ │ ├── CountingDuckFactory.class
│ │ │ ├── DecoyDuck.class
│ │ │ ├── DuckCall.class
│ │ │ ├── DuckFactory.class
│ │ │ ├── DuckSimulator.class
│ │ │ ├── Flock.class
│ │ │ ├── GooseAdapter.class
│ │ │ ├── Goose.class
│ │ │ ├── MallardDuck.class
│ │ │ ├── Quackable.class
│ │ │ ├── QuackCounter.class
│ │ │ ├── RedheadDuck.class
│ │ │ └── RubberDuck.class
│ │ ├── decorator
│ │ │ ├── DecoyDuck.class
│ │ │ ├── DuckCall.class
│ │ │ ├── DuckSimulator.class
│ │ │ ├── GooseAdapter.class
│ │ │ ├── Goose.class
│ │ │ ├── MallardDuck.class
│ │ │ ├── Quackable.class
│ │ │ ├── QuackCounter.class
│ │ │ ├── RedheadDuck.class
│ │ │ └── RubberDuck.class
│ │ ├── ducks
│ │ │ ├── DecoyDuck.class
│ │ │ ├── DuckCall.class
│ │ │ ├── DuckSimulator.class
│ │ │ ├── MallardDuck.class
│ │ │ ├── Quackable.class
│ │ │ ├── RedheadDuck.class
│ │ │ └── RubberDuck.class
│ │ ├── factory
│ │ │ ├── AbstractDuckFactory.class
│ │ │ ├── CountingDuckFactory.class
│ │ │ ├── DecoyDuck.class
│ │ │ ├── DuckCall.class
│ │ │ ├── DuckFactory.class
│ │ │ ├── DuckSimulator.class
│ │ │ ├── GooseAdapter.class
│ │ │ ├── Goose.class
│ │ │ ├── MallardDuck.class
│ │ │ ├── Quackable.class
│ │ │ ├── QuackCounter.class
│ │ │ ├── RedheadDuck.class
│ │ │ └── RubberDuck.class
│ │ └── observer
│ │ ├── AbstractDuckFactory.class
│ │ ├── CountingDuckFactory.class
│ │ ├── DecoyDuck.class
│ │ ├── DuckCall.class
│ │ ├── DuckFactory.class
│ │ ├── DuckSimulator.class
│ │ ├── Flock.class
│ │ ├── GooseAdapter.class
│ │ ├── Goose.class
│ │ ├── MallardDuck.class
│ │ ├── Observable.class
│ │ ├── Observer.class
│ │ ├── Quackable.class
│ │ ├── QuackCounter.class
│ │ ├── QuackObservable.class
│ │ ├── Quackologist.class
│ │ ├── RedheadDuck.class
│ │ └── RubberDuck.class
│ ├── command
│ │ ├── party
│ │ │ ├── CeilingFan.class
│ │ │ ├── CeilingFanHighCommand.class
│ │ │ ├── CeilingFanMediumCommand.class
│ │ │ ├── CeilingFanOffCommand.class
│ │ │ ├── Command.class
│ │ │ ├── Hottub.class
│ │ │ ├── HottubOffCommand.class
│ │ │ ├── HottubOnCommand.class
│ │ │ ├── Light.class
│ │ │ ├── LightOffCommand.class
│ │ │ ├── LightOnCommand.class
│ │ │ ├── LivingroomLightOffCommand.class
│ │ │ ├── LivingroomLightOnCommand.class
│ │ │ ├── MacroCommand.class
│ │ │ ├── NoCommand.class
│ │ │ ├── RemoteControl.class
│ │ │ ├── RemoteLoader.class
│ │ │ ├── Stereo.class
│ │ │ ├── StereoOffCommand.class
│ │ │ ├── StereoOnCommand.class
│ │ │ ├── StereoOnWithCDCommand.class
│ │ │ ├── TV.class
│ │ │ ├── TVOffCommand.class
│ │ │ └── TVOnCommand.class
│ │ ├── remote
│ │ │ ├── CeilingFan.class
│ │ │ ├── CeilingFanOffCommand.class
│ │ │ ├── CeilingFanOnCommand.class
│ │ │ ├── Command.class
│ │ │ ├── GarageDoor.class
│ │ │ ├── GarageDoorDownCommand.class
│ │ │ ├── GarageDoorUpCommand.class
│ │ │ ├── Hottub.class
│ │ │ ├── HottubOffCommand.class
│ │ │ ├── HottubOnCommand.class
│ │ │ ├── Light.class
│ │ │ ├── LightOffCommand.class
│ │ │ ├── LightOnCommand.class
│ │ │ ├── LivingroomLightOffCommand.class
│ │ │ ├── LivingroomLightOnCommand.class
│ │ │ ├── NoCommand.class
│ │ │ ├── RemoteControl.class
│ │ │ ├── RemoteLoader.class
│ │ │ ├── Stereo.class
│ │ │ ├── StereoOffCommand.class
│ │ │ ├── StereoOnWithCDCommand.class
│ │ │ └── TV.class
│ │ ├── remoteWL
│ │ │ ├── CeilingFan.class
│ │ │ ├── Command.class
│ │ │ ├── GarageDoor.class
│ │ │ ├── Hottub.class
│ │ │ ├── Light.class
│ │ │ ├── RemoteControl.class
│ │ │ ├── RemoteLoader.class
│ │ │ ├── Stereo.class
│ │ │ └── TV.class
│ │ ├── simpleremote
│ │ │ ├── Command.class
│ │ │ ├── GarageDoor.class
│ │ │ ├── GarageDoorOpenCommand.class
│ │ │ ├── Light.class
│ │ │ ├── LightOffCommand.class
│ │ │ ├── LightOnCommand.class
│ │ │ ├── RemoteControlTest.class
│ │ │ └── SimpleRemoteControl.class
│ │ ├── simpleremoteWL
│ │ │ ├── Command.class
│ │ │ ├── GarageDoor.class
│ │ │ ├── Light.class
│ │ │ ├── RemoteControlTest.class
│ │ │ └── SimpleRemoteControl.class
│ │ └── undo
│ │ ├── CeilingFan.class
│ │ ├── CeilingFanHighCommand.class
│ │ ├── CeilingFanLowCommand.class
│ │ ├── CeilingFanMediumCommand.class
│ │ ├── CeilingFanOffCommand.class
│ │ ├── Command.class
│ │ ├── DimmerLightOffCommand.class
│ │ ├── DimmerLightOnCommand.class
│ │ ├── Light.class
│ │ ├── LightOffCommand.class
│ │ ├── LightOnCommand.class
│ │ ├── NoCommand.class
│ │ ├── RemoteControlWithUndo.class
│ │ └── RemoteLoader.class
│ ├── composite
│ │ ├── menu
│ │ │ ├── Menu.class
│ │ │ ├── MenuComponent.class
│ │ │ ├── MenuItem.class
│ │ │ ├── MenuTestDrive.class
│ │ │ └── Waitress.class
│ │ └── menuiterator
│ │ ├── CompositeIterator.class
│ │ ├── Menu.class
│ │ ├── MenuComponent.class
│ │ ├── MenuItem.class
│ │ ├── MenuTestDrive.class
│ │ ├── NullIterator.class
│ │ └── Waitress.class
│ ├── decorator
│ │ ├── io
│ │ │ ├── InputTest.class
│ │ │ └── LowerCaseInputStream.class
│ │ ├── starbuzz
│ │ │ ├── Beverage.class
│ │ │ ├── CondimentDecorator.class
│ │ │ ├── DarkRoast.class
│ │ │ ├── Decaf.class
│ │ │ ├── Espresso.class
│ │ │ ├── HouseBlend.class
│ │ │ ├── Milk.class
│ │ │ ├── Mocha.class
│ │ │ ├── Soy.class
│ │ │ ├── StarbuzzCoffee.class
│ │ │ └── Whip.class
│ │ └── starbuzzWithSizes
│ │ ├── Beverage$Size.class
│ │ ├── Beverage.class
│ │ ├── CondimentDecorator.class
│ │ ├── DarkRoast.class
│ │ ├── Decaf.class
│ │ ├── Espresso.class
│ │ ├── HouseBlend.class
│ │ ├── Milk.class
│ │ ├── Mocha.class
│ │ ├── Soy.class
│ │ ├── StarbuzzCoffee.class
│ │ └── Whip.class
│ ├── ducks
│ │ ├── DuckAdapter.class
│ │ ├── Duck.class
│ │ ├── DuckTestDrive.class
│ │ ├── MallardDuck.class
│ │ ├── TurkeyAdapter.class
│ │ ├── Turkey.class
│ │ ├── TurkeyTestDrive.class
│ │ └── WildTurkey.class
│ ├── facade
│ │ └── hometheater
│ │ ├── Amplifier.class
│ │ ├── CdPlayer.class
│ │ ├── DvdPlayer.class
│ │ ├── HomeTheaterFacade.class
│ │ ├── HomeTheaterTestDrive.class
│ │ ├── PopcornPopper.class
│ │ ├── Projector.class
│ │ ├── Screen.class
│ │ ├── TheaterLights.class
│ │ └── Tuner.class
│ ├── factory
│ │ ├── pizzaaf
│ │ │ ├── BlackOlives.class
│ │ │ ├── Cheese.class
│ │ │ ├── CheesePizza.class
│ │ │ ├── ChicagoPizzaIngredientFactory.class
│ │ │ ├── ChicagoPizzaStore.class
│ │ │ ├── ClamPizza.class
│ │ │ ├── Clams.class
│ │ │ ├── Dough.class
│ │ │ ├── Eggplant.class
│ │ │ ├── FreshClams.class
│ │ │ ├── FrozenClams.class
│ │ │ ├── Garlic.class
│ │ │ ├── MarinaraSauce.class
│ │ │ ├── MozzarellaCheese.class
│ │ │ ├── Mushroom.class
│ │ │ ├── NYPizzaIngredientFactory.class
│ │ │ ├── NYPizzaStore.class
│ │ │ ├── Onion.class
│ │ │ ├── ParmesanCheese.class
│ │ │ ├── Pepperoni.class
│ │ │ ├── PepperoniPizza.class
│ │ │ ├── Pizza.class
│ │ │ ├── PizzaIngredientFactory.class
│ │ │ ├── PizzaStore.class
│ │ │ ├── PizzaTestDrive.class
│ │ │ ├── PlumTomatoSauce.class
│ │ │ ├── RedPepper.class
│ │ │ ├── ReggianoCheese.class
│ │ │ ├── Sauce.class
│ │ │ ├── SlicedPepperoni.class
│ │ │ ├── Spinach.class
│ │ │ ├── ThickCrustDough.class
│ │ │ ├── ThinCrustDough.class
│ │ │ ├── VeggiePizza.class
│ │ │ └── Veggies.class
│ │ ├── pizzafm
│ │ │ ├── ChicagoPizzaStore.class
│ │ │ ├── ChicagoStyleCheesePizza.class
│ │ │ ├── ChicagoStyleClamPizza.class
│ │ │ ├── ChicagoStylePepperoniPizza.class
│ │ │ ├── ChicagoStyleVeggiePizza.class
│ │ │ ├── DependentPizzaStore.class
│ │ │ ├── NYPizzaStore.class
│ │ │ ├── NYStyleCheesePizza.class
│ │ │ ├── NYStyleClamPizza.class
│ │ │ ├── NYStylePepperoniPizza.class
│ │ │ ├── NYStyleVeggiePizza.class
│ │ │ ├── Pizza.class
│ │ │ ├── PizzaStore.class
│ │ │ └── PizzaTestDrive.class
│ │ └── pizzas
│ │ ├── CheesePizza.class
│ │ ├── ClamPizza.class
│ │ ├── PepperoniPizza.class
│ │ ├── Pizza.class
│ │ ├── PizzaStore.class
│ │ ├── PizzaTestDrive.class
│ │ ├── SimplePizzaFactory.class
│ │ └── VeggiePizza.class
│ ├── iterator
│ │ ├── dinermerger
│ │ │ ├── AlternatingDinerMenuIterator.class
│ │ │ ├── ArrayIterator.class
│ │ │ ├── ArrayListIterator.class
│ │ │ ├── DinerMenu.class
│ │ │ ├── DinerMenuIterator.class
│ │ │ ├── Iterator.class
│ │ │ ├── Menu.class
│ │ │ ├── MenuItem.class
│ │ │ ├── MenuTestDrive.class
│ │ │ ├── PancakeHouseMenu.class
│ │ │ ├── PancakeHouseMenuIterator.class
│ │ │ └── Waitress.class
│ │ ├── dinermergercafe
│ │ │ ├── AlternatingDinerMenuIterator.class
│ │ │ ├── CafeMenu.class
│ │ │ ├── DinerMenu.class
│ │ │ ├── DinerMenuIterator.class
│ │ │ ├── Menu.class
│ │ │ ├── MenuItem.class
│ │ │ ├── MenuTestDrive.class
│ │ │ ├── PancakeHouseMenu.class
│ │ │ └── Waitress.class
│ │ ├── dinermergeri
│ │ │ ├── AlternatingDinerMenuIterator.class
│ │ │ ├── DinerMenu.class
│ │ │ ├── DinerMenuIterator.class
│ │ │ ├── Menu.class
│ │ │ ├── MenuItem.class
│ │ │ ├── MenuTestDrive.class
│ │ │ ├── PancakeHouseMenu.class
│ │ │ └── Waitress.class
│ │ └── transition
│ │ ├── DinerMenu.class
│ │ ├── DinerMenuIterator.class
│ │ ├── Menu.class
│ │ ├── MenuItem.class
│ │ ├── MenuTestDrive.class
│ │ ├── PancakeHouseMenu.class
│ │ └── Waitress.class
│ ├── iterenum
│ │ ├── EI.class
│ │ ├── EnumerationIterator.class
│ │ ├── EnumerationIteratorTestDrive.class
│ │ ├── IteratorEnumeration.class
│ │ └── IteratorEnumerationTestDrive.class
│ ├── observer
│ │ ├── swing
│ │ │ └── SwingObserverExample.class
│ │ ├── weather
│ │ │ ├── CurrentConditionsDisplay.class
│ │ │ ├── DisplayElement.class
│ │ │ ├── ForecastDisplay.class
│ │ │ ├── HeatIndexDisplay.class
│ │ │ ├── Observer.class
│ │ │ ├── StatisticsDisplay.class
│ │ │ ├── Subject.class
│ │ │ ├── WeatherData.class
│ │ │ ├── WeatherStation.class
│ │ │ └── WeatherStationHeatIndex.class
│ │ └── weatherobservable
│ │ ├── CurrentConditionsDisplay.class
│ │ ├── DisplayElement.class
│ │ ├── ForecastDisplay.class
│ │ ├── HeatIndexDisplay.class
│ │ ├── StatisticsDisplay.class
│ │ ├── WeatherData.class
│ │ ├── WeatherStation.class
│ │ └── WeatherStationHeatIndex.class
│ ├── proxy
│ │ ├── gumball
│ │ │ ├── GumballMachine.class
│ │ │ ├── GumballMachineRemote.class
│ │ │ ├── GumballMachineTestDrive.class
│ │ │ ├── GumballMonitor.class
│ │ │ ├── GumballMonitorTestDrive.class
│ │ │ ├── HasQuarterState.class
│ │ │ ├── NoQuarterState.class
│ │ │ ├── README.md
│ │ │ ├── SoldOutState.class
│ │ │ ├── SoldState.class
│ │ │ ├── State.class
│ │ │ └── WinnerState.class
│ │ ├── gumballmonitor
│ │ │ ├── GumballMachine.class
│ │ │ ├── GumballMachineTestDrive.class
│ │ │ ├── GumballMonitor.class
│ │ │ ├── HasQuarterState.class
│ │ │ ├── NoQuarterState.class
│ │ │ ├── SoldOutState.class
│ │ │ ├── SoldState.class
│ │ │ ├── State.class
│ │ │ └── WinnerState.class
│ │ ├── javaproxy
│ │ │ ├── MatchMakingTestDrive.class
│ │ │ ├── NonOwnerInvocationHandler.class
│ │ │ ├── OwnerInvocationHandler.class
│ │ │ ├── PersonBean.class
│ │ │ └── PersonBeanImpl.class
│ │ └── virtualproxy
│ │ ├── ImageComponent.class
│ │ ├── ImageProxy$1.class
│ │ ├── ImageProxy.class
│ │ └── ImageProxyTestDrive.class
│ ├── singleton
│ │ ├── chocolate
│ │ │ ├── ChocolateBoiler.class
│ │ │ └── ChocolateController.class
│ │ ├── classic
│ │ │ ├── Singleton.class
│ │ │ └── SingletonClient.class
│ │ ├── dcl
│ │ │ ├── Singleton.class
│ │ │ └── SingletonClient.class
│ │ ├── stat
│ │ │ ├── Singleton.class
│ │ │ └── SingletonClient.class
│ │ ├── subclass
│ │ │ ├── CoolerSingleton.class
│ │ │ ├── HotterSingleton.class
│ │ │ ├── Singleton.class
│ │ │ └── SingletonTestDrive.class
│ │ └── threadsafe
│ │ ├── Singleton.class
│ │ └── SingletonClient.class
│ ├── state
│ │ ├── gumball
│ │ │ ├── GumballMachine.class
│ │ │ └── GumballMachineTestDrive.class
│ │ ├── gumballstate
│ │ │ ├── GumballMachine.class
│ │ │ ├── GumballMachineTestDrive.class
│ │ │ ├── HasQuarterState.class
│ │ │ ├── NoQuarterState.class
│ │ │ ├── SoldOutState.class
│ │ │ ├── SoldState.class
│ │ │ └── State.class
│ │ └── gumballstatewinner
│ │ ├── GumballMachine.class
│ │ ├── GumballMachineTestDrive.class
│ │ ├── HasQuarterState.class
│ │ ├── NoQuarterState.class
│ │ ├── SoldOutState.class
│ │ ├── SoldState.class
│ │ ├── State.class
│ │ └── WinnerState.class
│ ├── strategy
│ │ ├── DecoyDuck.class
│ │ ├── Duck.class
│ │ ├── FakeQuack.class
│ │ ├── FlyBehavior.class
│ │ ├── FlyNoWay.class
│ │ ├── FlyRocketPowered.class
│ │ ├── FlyWithWings.class
│ │ ├── MallardDuck.class
│ │ ├── MiniDuckSimulator1.class
│ │ ├── MiniDuckSimulator.class
│ │ ├── ModelDuck.class
│ │ ├── MuteQuack.class
│ │ ├── QuackBehavior.class
│ │ ├── Quack.class
│ │ ├── RedHeadDuck.class
│ │ ├── RubberDuck.class
│ │ └── Squeak.class
│ └── templatemethod
│ ├── applet
│ │ ├── AppletSource.txt
│ │ └── MyApplet.class
│ ├── barista
│ │ ├── BeverageTestDrive.class
│ │ ├── CaffeineBeverage.class
│ │ ├── CaffeineBeverageWithHook.class
│ │ ├── Coffee.class
│ │ ├── CoffeeWithHook.class
│ │ ├── Tea.class
│ │ └── TeaWithHook.class
│ ├── frame
│ │ └── MyFrame.class
│ ├── simplebarista
│ │ ├── Barista.class
│ │ ├── Coffee.class
│ │ └── Tea.class
│ └── sort
│ ├── Duck.class
│ └── DuckSortTestDrive.class
└── test.txt
151 directories, 930 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论