在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → Head First设计模式官方源码

Head First设计模式官方源码

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:0.75M
  • 下载次数:5
  • 浏览次数:88
  • 发布时间:2020-09-10
  • 实例类别:一般编程问题
  • 发 布 人:robot666
  • 文件格式:.zip
  • 所需积分:2
 

实例介绍

【实例简介】
第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

标签:

实例下载地址

Head First设计模式官方源码

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警