├── .gitignore ├── 01-Creational Patterns ├── Abstract Factory Pattern │ ├── Abstract Factory Pattern.md │ └── src │ │ └── com │ │ └── luna │ │ └── abstractFactory │ │ ├── client │ │ └── LunaHaveAMeal.java │ │ ├── factory │ │ ├── IFactory.java │ │ └── impl │ │ │ ├── KendaFactory.java │ │ │ └── McdonFactory.java │ │ ├── model │ │ ├── FriedChickenMeal.java │ │ └── HamburgerMeal.java │ │ └── product │ │ ├── IFriedChickenMeal.java │ │ ├── IHamburgerMeal.java │ │ └── impl │ │ ├── KendaFriedChickenMeal.java │ │ ├── KendaHamburgerMeal.java │ │ ├── McdonFriedChickenMeal.java │ │ └── McdonHamburgerMeal.java ├── Builder Pattern │ ├── Builder Pattern.md │ └── src │ │ └── com │ │ └── luna │ │ └── builderPattern │ │ ├── builder │ │ ├── Builder.java │ │ ├── Director.java │ │ └── impl │ │ │ └── ConcreteBuilder.java │ │ ├── client │ │ └── Client.java │ │ └── model │ │ └── HamburgerMeal.java ├── Factory Pattern │ ├── Factory Pattern.md │ └── src │ │ └── com │ │ └── luna │ │ ├── factory │ │ ├── FruitStore.java │ │ └── impl │ │ │ └── FruitFactory.java │ │ ├── model │ │ ├── Fruit.java │ │ └── impl │ │ │ ├── Apple.java │ │ │ ├── Banana.java │ │ │ └── Orange.java │ │ └── test │ │ └── TestFactory.java ├── Prototype Pattern │ ├── Prototype Pattern.md │ └── src │ │ └── com │ │ └── luna │ │ └── prototype │ │ ├── Customer.java │ │ ├── HamburgerMeal.java │ │ ├── TestDeepCopy.java │ │ └── TestShallowCopy.java └── Singleton Pattern │ ├── Singleton Pattern.md │ └── src │ └── com │ └── luna │ └── singleton │ └── demo │ ├── SingletonDemo1.java │ ├── SingletonDemo2.java │ ├── SingletonDemo3.java │ ├── SingletonDemo4.java │ ├── SingletonDemo5.java │ ├── SingletonDemo6.java │ └── SingletonDemo7.java ├── 02-Structural Patterns ├── Adapter Pattern │ ├── Adapter Pattern.md │ └── src │ │ └── com │ │ └── luna │ │ └── adpterPattern │ │ ├── Appliance.java │ │ ├── Gun.java │ │ ├── impl │ │ ├── AdapterClassKar98k.java │ │ ├── AdapterObjectKar98k.java │ │ └── Kar98k.java │ │ └── test │ │ ├── TestAdapterClass.java │ │ └── TestAdapterObject.java ├── Bridge Pattern │ ├── Bridge Pattern.md │ └── src │ │ └── com │ │ └── luna │ │ └── bridge │ │ ├── car │ │ ├── Car.java │ │ └── impl │ │ │ ├── Buggy.java │ │ │ └── Uaz.java │ │ ├── road │ │ ├── Road.java │ │ └── impl │ │ │ ├── Cornfield.java │ │ │ └── Mountain.java │ │ └── test │ │ └── TestBridge.java ├── Composite Pattern │ ├── Composite Pattern.md │ └── src │ │ └── com │ │ └── luna │ │ └── composite │ │ ├── Component.java │ │ ├── LeafPlayer.java │ │ ├── Player.java │ │ └── Test.java ├── Decorator Pattern │ ├── Decorator Pattern.md │ └── src │ │ └── com │ │ └── luna │ │ └── decorator │ │ ├── Player.java │ │ ├── PlayerDecorator.java │ │ ├── impl │ │ ├── BoxesPlayerImpl.java │ │ ├── Crossbow.java │ │ ├── ExpertPlayerImpl.java │ │ ├── Helmet.java │ │ ├── Kar98k.java │ │ ├── Pan.java │ │ └── Vest.java │ │ └── test │ │ └── Test.java ├── Facade Pattern │ ├── Facade Pattern.md │ └── src │ │ └── com │ │ └── luna │ │ └── facade │ │ ├── FacadeMaker.java │ │ ├── subsystem │ │ ├── MoveState.java │ │ ├── PhysicalState.java │ │ └── StateOfGuns.java │ │ └── test │ │ └── Client.java ├── Filter Pattern │ ├── Filter Pattern.md │ └── src │ │ └── com │ │ └── luna │ │ └── filter │ │ ├── Filter.java │ │ ├── FourWheelerFilter.java │ │ ├── RedCarFilter.java │ │ ├── model │ │ └── Car.java │ │ ├── test │ │ └── TestFilter.java │ │ └── util │ │ ├── FilterAnd.java │ │ └── FilterOr.java ├── Flyweight Pattern │ ├── Flyweight Pattern.md │ └── src │ │ └── com │ │ └── luna │ │ └── flyweight │ │ ├── FlyweightFactory.java │ │ ├── model │ │ ├── Gun.java │ │ └── TheBigGuns.java │ │ └── test │ │ └── Client.java └── Proxy Pattern │ ├── Proxy Pattern.md │ └── src │ └── com │ └── luna │ └── proxy │ ├── Buggy.java │ ├── DynamicProxy.java │ ├── ICar.java │ ├── StaticProxy.java │ └── test │ ├── DynamicProxyTest.java │ └── StaticProxyTest.java ├── 03-Behavioral Patterns ├── Chain of Responsibility Pattern │ ├── Chain of Responsibility Pattern.md │ └── src │ │ └── com │ │ └── luna │ │ └── responsibilityPattern │ │ ├── Ratify.java │ │ ├── RealChain.java │ │ ├── Result.java │ │ ├── Test.java │ │ ├── client │ │ └── ChainOfResponsibilityClient.java │ │ ├── impl │ │ ├── DepartmentHeader.java │ │ ├── GroupLeader.java │ │ └── Manager.java │ │ └── mode │ │ └── Request.java └── Command Pattern │ ├── Command Pattern.md │ └── src │ └── com │ └── luna │ └── commoandPattern │ ├── Command.java │ ├── Impl │ ├── CatchCommand.java │ └── FightCommand.java │ ├── Invoker.java │ ├── Receiver.java │ └── client │ └── Client.java ├── README.md └── img └── gongchang.png /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/.gitignore -------------------------------------------------------------------------------- /01-Creational Patterns/Abstract Factory Pattern/Abstract Factory Pattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Abstract Factory Pattern/Abstract Factory Pattern.md -------------------------------------------------------------------------------- /01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/client/LunaHaveAMeal.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/client/LunaHaveAMeal.java -------------------------------------------------------------------------------- /01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/factory/IFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/factory/IFactory.java -------------------------------------------------------------------------------- /01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/factory/impl/KendaFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/factory/impl/KendaFactory.java -------------------------------------------------------------------------------- /01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/factory/impl/McdonFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/factory/impl/McdonFactory.java -------------------------------------------------------------------------------- /01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/model/FriedChickenMeal.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/model/FriedChickenMeal.java -------------------------------------------------------------------------------- /01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/model/HamburgerMeal.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/model/HamburgerMeal.java -------------------------------------------------------------------------------- /01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/product/IFriedChickenMeal.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/product/IFriedChickenMeal.java -------------------------------------------------------------------------------- /01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/product/IHamburgerMeal.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/product/IHamburgerMeal.java -------------------------------------------------------------------------------- /01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/product/impl/KendaFriedChickenMeal.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/product/impl/KendaFriedChickenMeal.java -------------------------------------------------------------------------------- /01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/product/impl/KendaHamburgerMeal.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/product/impl/KendaHamburgerMeal.java -------------------------------------------------------------------------------- /01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/product/impl/McdonFriedChickenMeal.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/product/impl/McdonFriedChickenMeal.java -------------------------------------------------------------------------------- /01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/product/impl/McdonHamburgerMeal.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Abstract Factory Pattern/src/com/luna/abstractFactory/product/impl/McdonHamburgerMeal.java -------------------------------------------------------------------------------- /01-Creational Patterns/Builder Pattern/Builder Pattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Builder Pattern/Builder Pattern.md -------------------------------------------------------------------------------- /01-Creational Patterns/Builder Pattern/src/com/luna/builderPattern/builder/Builder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Builder Pattern/src/com/luna/builderPattern/builder/Builder.java -------------------------------------------------------------------------------- /01-Creational Patterns/Builder Pattern/src/com/luna/builderPattern/builder/Director.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Builder Pattern/src/com/luna/builderPattern/builder/Director.java -------------------------------------------------------------------------------- /01-Creational Patterns/Builder Pattern/src/com/luna/builderPattern/builder/impl/ConcreteBuilder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Builder Pattern/src/com/luna/builderPattern/builder/impl/ConcreteBuilder.java -------------------------------------------------------------------------------- /01-Creational Patterns/Builder Pattern/src/com/luna/builderPattern/client/Client.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Builder Pattern/src/com/luna/builderPattern/client/Client.java -------------------------------------------------------------------------------- /01-Creational Patterns/Builder Pattern/src/com/luna/builderPattern/model/HamburgerMeal.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Builder Pattern/src/com/luna/builderPattern/model/HamburgerMeal.java -------------------------------------------------------------------------------- /01-Creational Patterns/Factory Pattern/Factory Pattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Factory Pattern/Factory Pattern.md -------------------------------------------------------------------------------- /01-Creational Patterns/Factory Pattern/src/com/luna/factory/FruitStore.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Factory Pattern/src/com/luna/factory/FruitStore.java -------------------------------------------------------------------------------- /01-Creational Patterns/Factory Pattern/src/com/luna/factory/impl/FruitFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Factory Pattern/src/com/luna/factory/impl/FruitFactory.java -------------------------------------------------------------------------------- /01-Creational Patterns/Factory Pattern/src/com/luna/model/Fruit.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Factory Pattern/src/com/luna/model/Fruit.java -------------------------------------------------------------------------------- /01-Creational Patterns/Factory Pattern/src/com/luna/model/impl/Apple.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Factory Pattern/src/com/luna/model/impl/Apple.java -------------------------------------------------------------------------------- /01-Creational Patterns/Factory Pattern/src/com/luna/model/impl/Banana.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Factory Pattern/src/com/luna/model/impl/Banana.java -------------------------------------------------------------------------------- /01-Creational Patterns/Factory Pattern/src/com/luna/model/impl/Orange.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Factory Pattern/src/com/luna/model/impl/Orange.java -------------------------------------------------------------------------------- /01-Creational Patterns/Factory Pattern/src/com/luna/test/TestFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Factory Pattern/src/com/luna/test/TestFactory.java -------------------------------------------------------------------------------- /01-Creational Patterns/Prototype Pattern/Prototype Pattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Prototype Pattern/Prototype Pattern.md -------------------------------------------------------------------------------- /01-Creational Patterns/Prototype Pattern/src/com/luna/prototype/Customer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Prototype Pattern/src/com/luna/prototype/Customer.java -------------------------------------------------------------------------------- /01-Creational Patterns/Prototype Pattern/src/com/luna/prototype/HamburgerMeal.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Prototype Pattern/src/com/luna/prototype/HamburgerMeal.java -------------------------------------------------------------------------------- /01-Creational Patterns/Prototype Pattern/src/com/luna/prototype/TestDeepCopy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Prototype Pattern/src/com/luna/prototype/TestDeepCopy.java -------------------------------------------------------------------------------- /01-Creational Patterns/Prototype Pattern/src/com/luna/prototype/TestShallowCopy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Prototype Pattern/src/com/luna/prototype/TestShallowCopy.java -------------------------------------------------------------------------------- /01-Creational Patterns/Singleton Pattern/Singleton Pattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Singleton Pattern/Singleton Pattern.md -------------------------------------------------------------------------------- /01-Creational Patterns/Singleton Pattern/src/com/luna/singleton/demo/SingletonDemo1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Singleton Pattern/src/com/luna/singleton/demo/SingletonDemo1.java -------------------------------------------------------------------------------- /01-Creational Patterns/Singleton Pattern/src/com/luna/singleton/demo/SingletonDemo2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Singleton Pattern/src/com/luna/singleton/demo/SingletonDemo2.java -------------------------------------------------------------------------------- /01-Creational Patterns/Singleton Pattern/src/com/luna/singleton/demo/SingletonDemo3.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Singleton Pattern/src/com/luna/singleton/demo/SingletonDemo3.java -------------------------------------------------------------------------------- /01-Creational Patterns/Singleton Pattern/src/com/luna/singleton/demo/SingletonDemo4.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Singleton Pattern/src/com/luna/singleton/demo/SingletonDemo4.java -------------------------------------------------------------------------------- /01-Creational Patterns/Singleton Pattern/src/com/luna/singleton/demo/SingletonDemo5.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Singleton Pattern/src/com/luna/singleton/demo/SingletonDemo5.java -------------------------------------------------------------------------------- /01-Creational Patterns/Singleton Pattern/src/com/luna/singleton/demo/SingletonDemo6.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Singleton Pattern/src/com/luna/singleton/demo/SingletonDemo6.java -------------------------------------------------------------------------------- /01-Creational Patterns/Singleton Pattern/src/com/luna/singleton/demo/SingletonDemo7.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/01-Creational Patterns/Singleton Pattern/src/com/luna/singleton/demo/SingletonDemo7.java -------------------------------------------------------------------------------- /02-Structural Patterns/Adapter Pattern/Adapter Pattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Adapter Pattern/Adapter Pattern.md -------------------------------------------------------------------------------- /02-Structural Patterns/Adapter Pattern/src/com/luna/adpterPattern/Appliance.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Adapter Pattern/src/com/luna/adpterPattern/Appliance.java -------------------------------------------------------------------------------- /02-Structural Patterns/Adapter Pattern/src/com/luna/adpterPattern/Gun.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Adapter Pattern/src/com/luna/adpterPattern/Gun.java -------------------------------------------------------------------------------- /02-Structural Patterns/Adapter Pattern/src/com/luna/adpterPattern/impl/AdapterClassKar98k.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Adapter Pattern/src/com/luna/adpterPattern/impl/AdapterClassKar98k.java -------------------------------------------------------------------------------- /02-Structural Patterns/Adapter Pattern/src/com/luna/adpterPattern/impl/AdapterObjectKar98k.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Adapter Pattern/src/com/luna/adpterPattern/impl/AdapterObjectKar98k.java -------------------------------------------------------------------------------- /02-Structural Patterns/Adapter Pattern/src/com/luna/adpterPattern/impl/Kar98k.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Adapter Pattern/src/com/luna/adpterPattern/impl/Kar98k.java -------------------------------------------------------------------------------- /02-Structural Patterns/Adapter Pattern/src/com/luna/adpterPattern/test/TestAdapterClass.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Adapter Pattern/src/com/luna/adpterPattern/test/TestAdapterClass.java -------------------------------------------------------------------------------- /02-Structural Patterns/Adapter Pattern/src/com/luna/adpterPattern/test/TestAdapterObject.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Adapter Pattern/src/com/luna/adpterPattern/test/TestAdapterObject.java -------------------------------------------------------------------------------- /02-Structural Patterns/Bridge Pattern/Bridge Pattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Bridge Pattern/Bridge Pattern.md -------------------------------------------------------------------------------- /02-Structural Patterns/Bridge Pattern/src/com/luna/bridge/car/Car.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Bridge Pattern/src/com/luna/bridge/car/Car.java -------------------------------------------------------------------------------- /02-Structural Patterns/Bridge Pattern/src/com/luna/bridge/car/impl/Buggy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Bridge Pattern/src/com/luna/bridge/car/impl/Buggy.java -------------------------------------------------------------------------------- /02-Structural Patterns/Bridge Pattern/src/com/luna/bridge/car/impl/Uaz.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Bridge Pattern/src/com/luna/bridge/car/impl/Uaz.java -------------------------------------------------------------------------------- /02-Structural Patterns/Bridge Pattern/src/com/luna/bridge/road/Road.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Bridge Pattern/src/com/luna/bridge/road/Road.java -------------------------------------------------------------------------------- /02-Structural Patterns/Bridge Pattern/src/com/luna/bridge/road/impl/Cornfield.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Bridge Pattern/src/com/luna/bridge/road/impl/Cornfield.java -------------------------------------------------------------------------------- /02-Structural Patterns/Bridge Pattern/src/com/luna/bridge/road/impl/Mountain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Bridge Pattern/src/com/luna/bridge/road/impl/Mountain.java -------------------------------------------------------------------------------- /02-Structural Patterns/Bridge Pattern/src/com/luna/bridge/test/TestBridge.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Bridge Pattern/src/com/luna/bridge/test/TestBridge.java -------------------------------------------------------------------------------- /02-Structural Patterns/Composite Pattern/Composite Pattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Composite Pattern/Composite Pattern.md -------------------------------------------------------------------------------- /02-Structural Patterns/Composite Pattern/src/com/luna/composite/Component.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Composite Pattern/src/com/luna/composite/Component.java -------------------------------------------------------------------------------- /02-Structural Patterns/Composite Pattern/src/com/luna/composite/LeafPlayer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Composite Pattern/src/com/luna/composite/LeafPlayer.java -------------------------------------------------------------------------------- /02-Structural Patterns/Composite Pattern/src/com/luna/composite/Player.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Composite Pattern/src/com/luna/composite/Player.java -------------------------------------------------------------------------------- /02-Structural Patterns/Composite Pattern/src/com/luna/composite/Test.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Composite Pattern/src/com/luna/composite/Test.java -------------------------------------------------------------------------------- /02-Structural Patterns/Decorator Pattern/Decorator Pattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Decorator Pattern/Decorator Pattern.md -------------------------------------------------------------------------------- /02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/Player.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/Player.java -------------------------------------------------------------------------------- /02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/PlayerDecorator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/PlayerDecorator.java -------------------------------------------------------------------------------- /02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/impl/BoxesPlayerImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/impl/BoxesPlayerImpl.java -------------------------------------------------------------------------------- /02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/impl/Crossbow.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/impl/Crossbow.java -------------------------------------------------------------------------------- /02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/impl/ExpertPlayerImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/impl/ExpertPlayerImpl.java -------------------------------------------------------------------------------- /02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/impl/Helmet.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/impl/Helmet.java -------------------------------------------------------------------------------- /02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/impl/Kar98k.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/impl/Kar98k.java -------------------------------------------------------------------------------- /02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/impl/Pan.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/impl/Pan.java -------------------------------------------------------------------------------- /02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/impl/Vest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/impl/Vest.java -------------------------------------------------------------------------------- /02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/test/Test.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Decorator Pattern/src/com/luna/decorator/test/Test.java -------------------------------------------------------------------------------- /02-Structural Patterns/Facade Pattern/Facade Pattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Facade Pattern/Facade Pattern.md -------------------------------------------------------------------------------- /02-Structural Patterns/Facade Pattern/src/com/luna/facade/FacadeMaker.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Facade Pattern/src/com/luna/facade/FacadeMaker.java -------------------------------------------------------------------------------- /02-Structural Patterns/Facade Pattern/src/com/luna/facade/subsystem/MoveState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Facade Pattern/src/com/luna/facade/subsystem/MoveState.java -------------------------------------------------------------------------------- /02-Structural Patterns/Facade Pattern/src/com/luna/facade/subsystem/PhysicalState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Facade Pattern/src/com/luna/facade/subsystem/PhysicalState.java -------------------------------------------------------------------------------- /02-Structural Patterns/Facade Pattern/src/com/luna/facade/subsystem/StateOfGuns.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Facade Pattern/src/com/luna/facade/subsystem/StateOfGuns.java -------------------------------------------------------------------------------- /02-Structural Patterns/Facade Pattern/src/com/luna/facade/test/Client.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Facade Pattern/src/com/luna/facade/test/Client.java -------------------------------------------------------------------------------- /02-Structural Patterns/Filter Pattern/Filter Pattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Filter Pattern/Filter Pattern.md -------------------------------------------------------------------------------- /02-Structural Patterns/Filter Pattern/src/com/luna/filter/Filter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Filter Pattern/src/com/luna/filter/Filter.java -------------------------------------------------------------------------------- /02-Structural Patterns/Filter Pattern/src/com/luna/filter/FourWheelerFilter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Filter Pattern/src/com/luna/filter/FourWheelerFilter.java -------------------------------------------------------------------------------- /02-Structural Patterns/Filter Pattern/src/com/luna/filter/RedCarFilter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Filter Pattern/src/com/luna/filter/RedCarFilter.java -------------------------------------------------------------------------------- /02-Structural Patterns/Filter Pattern/src/com/luna/filter/model/Car.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Filter Pattern/src/com/luna/filter/model/Car.java -------------------------------------------------------------------------------- /02-Structural Patterns/Filter Pattern/src/com/luna/filter/test/TestFilter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Filter Pattern/src/com/luna/filter/test/TestFilter.java -------------------------------------------------------------------------------- /02-Structural Patterns/Filter Pattern/src/com/luna/filter/util/FilterAnd.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Filter Pattern/src/com/luna/filter/util/FilterAnd.java -------------------------------------------------------------------------------- /02-Structural Patterns/Filter Pattern/src/com/luna/filter/util/FilterOr.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Filter Pattern/src/com/luna/filter/util/FilterOr.java -------------------------------------------------------------------------------- /02-Structural Patterns/Flyweight Pattern/Flyweight Pattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Flyweight Pattern/Flyweight Pattern.md -------------------------------------------------------------------------------- /02-Structural Patterns/Flyweight Pattern/src/com/luna/flyweight/FlyweightFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Flyweight Pattern/src/com/luna/flyweight/FlyweightFactory.java -------------------------------------------------------------------------------- /02-Structural Patterns/Flyweight Pattern/src/com/luna/flyweight/model/Gun.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Flyweight Pattern/src/com/luna/flyweight/model/Gun.java -------------------------------------------------------------------------------- /02-Structural Patterns/Flyweight Pattern/src/com/luna/flyweight/model/TheBigGuns.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Flyweight Pattern/src/com/luna/flyweight/model/TheBigGuns.java -------------------------------------------------------------------------------- /02-Structural Patterns/Flyweight Pattern/src/com/luna/flyweight/test/Client.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Flyweight Pattern/src/com/luna/flyweight/test/Client.java -------------------------------------------------------------------------------- /02-Structural Patterns/Proxy Pattern/Proxy Pattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Proxy Pattern/Proxy Pattern.md -------------------------------------------------------------------------------- /02-Structural Patterns/Proxy Pattern/src/com/luna/proxy/Buggy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Proxy Pattern/src/com/luna/proxy/Buggy.java -------------------------------------------------------------------------------- /02-Structural Patterns/Proxy Pattern/src/com/luna/proxy/DynamicProxy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Proxy Pattern/src/com/luna/proxy/DynamicProxy.java -------------------------------------------------------------------------------- /02-Structural Patterns/Proxy Pattern/src/com/luna/proxy/ICar.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Proxy Pattern/src/com/luna/proxy/ICar.java -------------------------------------------------------------------------------- /02-Structural Patterns/Proxy Pattern/src/com/luna/proxy/StaticProxy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Proxy Pattern/src/com/luna/proxy/StaticProxy.java -------------------------------------------------------------------------------- /02-Structural Patterns/Proxy Pattern/src/com/luna/proxy/test/DynamicProxyTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Proxy Pattern/src/com/luna/proxy/test/DynamicProxyTest.java -------------------------------------------------------------------------------- /02-Structural Patterns/Proxy Pattern/src/com/luna/proxy/test/StaticProxyTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/02-Structural Patterns/Proxy Pattern/src/com/luna/proxy/test/StaticProxyTest.java -------------------------------------------------------------------------------- /03-Behavioral Patterns/Chain of Responsibility Pattern/Chain of Responsibility Pattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/03-Behavioral Patterns/Chain of Responsibility Pattern/Chain of Responsibility Pattern.md -------------------------------------------------------------------------------- /03-Behavioral Patterns/Chain of Responsibility Pattern/src/com/luna/responsibilityPattern/Ratify.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/03-Behavioral Patterns/Chain of Responsibility Pattern/src/com/luna/responsibilityPattern/Ratify.java -------------------------------------------------------------------------------- /03-Behavioral Patterns/Chain of Responsibility Pattern/src/com/luna/responsibilityPattern/RealChain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/03-Behavioral Patterns/Chain of Responsibility Pattern/src/com/luna/responsibilityPattern/RealChain.java -------------------------------------------------------------------------------- /03-Behavioral Patterns/Chain of Responsibility Pattern/src/com/luna/responsibilityPattern/Result.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/03-Behavioral Patterns/Chain of Responsibility Pattern/src/com/luna/responsibilityPattern/Result.java -------------------------------------------------------------------------------- /03-Behavioral Patterns/Chain of Responsibility Pattern/src/com/luna/responsibilityPattern/Test.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/03-Behavioral Patterns/Chain of Responsibility Pattern/src/com/luna/responsibilityPattern/Test.java -------------------------------------------------------------------------------- /03-Behavioral Patterns/Chain of Responsibility Pattern/src/com/luna/responsibilityPattern/client/ChainOfResponsibilityClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/03-Behavioral Patterns/Chain of Responsibility Pattern/src/com/luna/responsibilityPattern/client/ChainOfResponsibilityClient.java -------------------------------------------------------------------------------- /03-Behavioral Patterns/Chain of Responsibility Pattern/src/com/luna/responsibilityPattern/impl/DepartmentHeader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/03-Behavioral Patterns/Chain of Responsibility Pattern/src/com/luna/responsibilityPattern/impl/DepartmentHeader.java -------------------------------------------------------------------------------- /03-Behavioral Patterns/Chain of Responsibility Pattern/src/com/luna/responsibilityPattern/impl/GroupLeader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/03-Behavioral Patterns/Chain of Responsibility Pattern/src/com/luna/responsibilityPattern/impl/GroupLeader.java -------------------------------------------------------------------------------- /03-Behavioral Patterns/Chain of Responsibility Pattern/src/com/luna/responsibilityPattern/impl/Manager.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/03-Behavioral Patterns/Chain of Responsibility Pattern/src/com/luna/responsibilityPattern/impl/Manager.java -------------------------------------------------------------------------------- /03-Behavioral Patterns/Chain of Responsibility Pattern/src/com/luna/responsibilityPattern/mode/Request.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/03-Behavioral Patterns/Chain of Responsibility Pattern/src/com/luna/responsibilityPattern/mode/Request.java -------------------------------------------------------------------------------- /03-Behavioral Patterns/Command Pattern/Command Pattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/03-Behavioral Patterns/Command Pattern/Command Pattern.md -------------------------------------------------------------------------------- /03-Behavioral Patterns/Command Pattern/src/com/luna/commoandPattern/Command.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/03-Behavioral Patterns/Command Pattern/src/com/luna/commoandPattern/Command.java -------------------------------------------------------------------------------- /03-Behavioral Patterns/Command Pattern/src/com/luna/commoandPattern/Impl/CatchCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/03-Behavioral Patterns/Command Pattern/src/com/luna/commoandPattern/Impl/CatchCommand.java -------------------------------------------------------------------------------- /03-Behavioral Patterns/Command Pattern/src/com/luna/commoandPattern/Impl/FightCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/03-Behavioral Patterns/Command Pattern/src/com/luna/commoandPattern/Impl/FightCommand.java -------------------------------------------------------------------------------- /03-Behavioral Patterns/Command Pattern/src/com/luna/commoandPattern/Invoker.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/03-Behavioral Patterns/Command Pattern/src/com/luna/commoandPattern/Invoker.java -------------------------------------------------------------------------------- /03-Behavioral Patterns/Command Pattern/src/com/luna/commoandPattern/Receiver.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/03-Behavioral Patterns/Command Pattern/src/com/luna/commoandPattern/Receiver.java -------------------------------------------------------------------------------- /03-Behavioral Patterns/Command Pattern/src/com/luna/commoandPattern/client/Client.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/03-Behavioral Patterns/Command Pattern/src/com/luna/commoandPattern/client/Client.java -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/README.md -------------------------------------------------------------------------------- /img/gongchang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikuluna/Design-patterns/HEAD/img/gongchang.png --------------------------------------------------------------------------------