├── bin └── cn │ └── design │ ├── pattern20160613StatePattern │ ├── 状态模式.png │ ├── State.class │ ├── Context.class │ ├── MainTest.class │ ├── ConcreteState1.class │ └── ConcreteState2.class │ ├── pattern20160504BuilderPattern │ ├── Car.class │ ├── 创建者模式.png │ ├── MainTest.class │ ├── CarBuilder.class │ └── HongQICarBuilder.class │ ├── pattern20160523FacadePattern │ ├── WY.class │ ├── 外观模式.png │ ├── 外观模式2.png │ ├── Facade.class │ ├── 外观模式UML.png │ ├── OilRetailer.class │ ├── WholeSaler.class │ └── PorkRetailer.class │ ├── pattern20160523FacadePattern2 │ ├── WY.class │ ├── Facade.class │ ├── 外观模式UML2.png │ ├── WholeSaler.class │ ├── OilMerchant.class │ ├── OilRetailer.class │ ├── PorkMerchant.class │ └── PorkRetailer.class │ ├── pattern20160524BridgePattern │ ├── 桥梁模式.png │ ├── MainTest.class │ ├── BYDCompany.class │ ├── CarCompanyBusi.class │ ├── HongQICompany.class │ ├── CarCompanyBussiness.class │ └── CompanyImplementor.class │ ├── pattern20160625CommandPattern │ ├── Man.class │ ├── Boss.class │ ├── Woman.class │ ├── 命令模式案例.png │ ├── Command.class │ ├── MainTest.class │ ├── Person.class │ ├── ChoppingCommand.class │ ├── MakeFoodCommand.class │ ├── FeedHorseCommand.class │ └── TravelHorseCommand.class │ ├── pattern20160629VisitorPattern │ ├── WY.class │ ├── X.class │ ├── Y.class │ ├── 访问者模式.png │ ├── Animal.class │ ├── MainTest.class │ └── Vistor.class │ ├── pattern20160504BuilderPattern2 │ ├── Car.class │ ├── BYDCar.class │ ├── 创建者模式改变行为.png │ ├── HongQiCar.class │ ├── MainTest.class │ ├── CarBuilder.class │ ├── BYDCarBuilder.class │ └── HongQiCarBuilder.class │ ├── pattern20160515AdapterPattern2 │ ├── 适配器模式.png │ ├── MainTest.class │ ├── UserInfoFrom.class │ ├── UserInfoInto.class │ ├── UserInfoTransfer.class │ ├── UserInfoFromInterface.class │ └── UserInfoIntoInterface.class │ ├── pattern20160518DecoratorPattern │ ├── Dao.class │ ├── 装饰模式.png │ ├── 装饰模式2.png │ ├── MainTest.class │ ├── UserDao.class │ ├── UserDaoDecorator.class │ └── UserDaoDecoratorParent.class │ ├── pattern20160525CompositePattern │ ├── 组合模式.png │ ├── Branch.class │ ├── Client.class │ ├── Corp.class │ └── Leaf.class │ ├── pattern20160604FlyWeightPattern │ ├── 享元模式.png │ ├── ExamRoom.class │ ├── MainTest.class │ └── SignUpFactory.class │ ├── pattern20160625CommandPattern1 │ ├── Boss.class │ ├── Man.class │ ├── 命令模式案例.png │ ├── Command.class │ ├── Person.class │ ├── Woman.class │ ├── MainTest.class │ ├── ManCommand.class │ └── WomanCommand.class │ ├── pattern20160515AdapterPattern │ ├── DataFrom.class │ ├── DataInto.class │ ├── MainTest.class │ └── Transfer.class │ ├── pattern20160517ProxyPatternStatic │ ├── File.class │ ├── 代理模式.png │ ├── MainTest.class │ ├── PDFFile.class │ └── PDFProxy.class │ ├── pattern20160604FlyWeightPattern2 │ ├── Bus.class │ ├── 享元模式公交车案例.png │ ├── BusFactory.class │ ├── MainTest.class │ └── WangYang.class │ ├── pattern20160608ObserverPatternPull │ ├── WY.class │ ├── XX.class │ ├── MainTest.class │ ├── Turtle2.class │ ├── Observer2.class │ └── Observable2.class │ ├── pattern20160608ObserverPatternPush │ ├── WY.class │ ├── XX.class │ ├── 观察者模式推.png │ ├── MainTest.class │ ├── Observer.class │ ├── Turtle.class │ └── Observable.class │ ├── pattern20160612StrategyPattern │ ├── Context.class │ ├── 策略模式类结构图.png │ ├── MainTest.class │ ├── RedLight.class │ ├── GreenLight.class │ ├── TrafficLight.class │ └── YellowLight.class │ ├── pattern20160709MementoPattern │ ├── MainTest.class │ ├── Memento.class │ ├── CareTaker.class │ └── Originator.class │ ├── pattern2016032012OpenClosedPrinciple │ ├── Car.class │ ├── MainTest.class │ └── RealCar.class │ ├── pattern2016032013OpenClosedPrinciple │ ├── Car.class │ ├── CarMore.class │ ├── MainTest.class │ ├── RealCar.class │ └── RealCarMoreInfo.class │ ├── pattern20160514PrototypePattern │ ├── Clothes.class │ ├── MainTest.class │ ├── WangYang.class │ ├── QQ截图20160514203529.png │ ├── QQ截图20160514205214.png │ └── QQ截图20160514210200.png │ ├── pattern20160517ProxyPatternDynamic │ ├── File.class │ ├── MainTest.class │ ├── PDFFile.class │ ├── PDFProxy.class │ └── PDFProxy$1.class │ ├── pattern20160606TemplateMethodPattern │ ├── Car.class │ ├── BYDCar.class │ ├── 模板方法模式.png │ ├── MainTest.class │ └── HongQiCar.class │ ├── pattern20160617ChainOfResponsibility │ ├── 责任链模式.png │ ├── Handler.class │ ├── MainTest.class │ ├── FirstHandler.class │ ├── LocalHandler.class │ └── SecondHandler.class │ ├── pattern20160709InterpreterPattern │ ├── Client.class │ ├── Calculator.class │ ├── Expression.class │ ├── AddExpression.class │ ├── SubExpression.class │ ├── VarExpression.class │ └── SymbolExpression.class │ ├── pattern20160709MediatorPattern │ ├── Airplane.class │ ├── MainTest.class │ ├── CNAirPlane.class │ ├── CNSHAirPlane.class │ ├── MainTest$1.class │ ├── MainTest$2.class │ └── AriportMediator.class │ ├── pattern20160709MediatorPattern2 │ ├── MainTest.class │ ├── Mediator.class │ ├── SaleMan.class │ ├── StoreMan.class │ ├── PurchaseMan.class │ ├── AbstractEmployee.class │ └── AbstractMediator.class │ ├── pattern2016032001SingleResponsibility │ ├── 1单一职责原则.png │ ├── Car.class │ ├── CarImpl.class │ └── MainTest.class │ ├── pattern2016032002SingleResponsibility │ ├── Car.class │ ├── 1单一职责原则2.png │ ├── CarImpl.class │ ├── CarAction.class │ ├── CarOperate.class │ └── MainTest.class │ ├── pattern2016032003SingleResponsibility │ ├── Car.class │ ├── 1单一职责原则3.png │ ├── CarImpl.class │ ├── CarAction.class │ ├── CarOperate.class │ ├── MainTest.class │ └── CarActionImpl.class │ ├── pattern2016032010LawOfDemeterPrinciple │ ├── Maid.class │ ├── Butler.class │ ├── Master.class │ └── MainTest.class │ ├── pattern2016032011LawOfDemeterPrinciple │ ├── Maid.class │ ├── Butler.class │ ├── Master.class │ └── MainTest.class │ ├── pattern2016032101SingletonPattern │ ├── MainTest.class │ ├── Singleton01.class │ ├── Singleton02.class │ ├── Singleton03.class │ ├── Singleton04.class │ ├── Singleton05.class │ ├── Singleton06.class │ └── Singleton05$Singleton.class │ ├── pattern2016032102SimpleFactoryPattern │ ├── BYD.class │ ├── Car.class │ ├── 简单工厂模式.png │ ├── Factory.class │ ├── HongQi.class │ └── CarFactory.class │ ├── pattern2016032103FactoryMethodPattern │ ├── BYD.class │ ├── Car.class │ ├── 工厂方法模式.png │ ├── Factory.class │ ├── HongQi.class │ ├── BYDFactory.class │ ├── MainTest.class │ └── HongQiFactory.class │ ├── pattern2016032104AbstractFactoryPattern │ ├── BYD.class │ ├── 抽象工厂模式.png │ ├── HongQI.class │ ├── MainTest.class │ ├── AbstractCarFactory.class │ ├── BYDFirstGenerCar.class │ ├── BYDSecondGenerCar.class │ ├── FirstGenerFactory.class │ ├── SecondGenerFactory.class │ ├── HongQiFirstGenerCar.class │ └── HongQiSecondGenerCar.class │ ├── pattern20160613StatePatternTrafficLight │ ├── WY.class │ ├── State.class │ ├── Context.class │ ├── RedLight.class │ ├── 状态模式红绿灯案例.png │ ├── GreenLight.class │ └── YellowLight.class │ ├── pattern20160625CommandPatternTemplate │ ├── Test.class │ ├── 命令模式模板.png │ ├── Command.class │ ├── Invoker.class │ ├── Command1.class │ ├── Command2.class │ ├── Receiver.class │ ├── Receiver1.class │ └── Receiver2.class │ ├── pattern20160629VisitorPatternExtend │ ├── Manager.class │ ├── Visitor.class │ ├── 访问者模式拓展.png │ ├── Employee.class │ ├── MainTest.class │ ├── CommonEmployee.class │ └── ConcreteVisitor.class │ ├── pattern20160629VisitorPatternTempla │ ├── Element.class │ ├── Vistor.class │ ├── 访问者模式模板.png │ ├── MainTest.class │ ├── ConcreteEle1.class │ ├── ConcreteEle2.class │ └── ConcreteVistor1.class │ ├── pattern20160709MementoPatternClone │ ├── MainTest.class │ └── Originator.class │ ├── pattern20160709MementoPatternMulti │ ├── MainTest.class │ ├── Memento.class │ ├── BeanUtils.class │ ├── Caretaker.class │ └── Originator.class │ ├── pattern20160612StrategyPatternCalculator1 │ ├── Add.class │ ├── Sub.class │ ├── Context.class │ ├── MainTest.class │ ├── 策略模式加减类图1.png │ └── Calculator.class │ ├── pattern2016032004LiskovSubstitutionPrinciple │ ├── 2里氏替换原则.png │ ├── Calc.class │ ├── CalcSon.class │ └── MainTest.class │ ├── pattern2016032007DependenceInversionPrinciple │ ├── Gun.class │ ├── 2依赖倒置原则改进.png │ ├── AK47Gun.class │ ├── Soldier.class │ ├── MainTest.class │ ├── WYSoldier.class │ └── SniperRifle.class │ ├── pattern2016032008InterfaceSegregationPrinciple │ ├── Dog.class │ ├── Bird.class │ ├── Common.class │ ├── 1接口隔离原则反例.png │ └── MainTest.class │ ├── pattern2016032009InterfaceSegregationPrinciple │ ├── Dog.class │ ├── Bird.class │ ├── Common.class │ ├── 2接口隔离原则改进.png │ ├── DogInter.class │ ├── MainTest.class │ └── BirdInter.class │ ├── pattern20160617ChainOfResponsibilityTemplate │ ├── 责任链模式模板.png │ ├── Handler.class │ ├── MainTest.class │ ├── ConcreteHandler1.class │ ├── ConcreteHandler2.class │ └── ConcreteHandler3.class │ ├── pattern2016032006DependenceInversionPrinciple │ ├── 1依赖倒置原则反例.png │ ├── AK47Gun.class │ ├── Soldier.class │ └── MainTest.class │ ├── pattern20160612StrategyPatternCalculator2Enum │ ├── Context.class │ ├── MainTest.class │ ├── Calculator$1.class │ ├── Calculator$2.class │ └── Calculator.class │ └── pattern2016032005LiskovSubstitutionPrincipleAbstract │ ├── Calc.class │ ├── 2里氏替换原则2.png │ ├── CalcSon.class │ ├── Calculator.class │ └── MainTest.class ├── src └── cn │ └── design │ ├── pattern20160613StatePattern │ ├── 状态模式.png │ ├── ConcreteState2.java │ ├── MainTest.java │ ├── ConcreteState1.java │ └── State.java │ ├── pattern20160504BuilderPattern │ ├── 创建者模式.png │ ├── CarBuilder.java │ ├── HongQICarBuilder.java │ └── MainTest.java │ ├── pattern20160523FacadePattern │ ├── 外观模式.png │ ├── 外观模式2.png │ ├── 外观模式UML.png │ ├── WY.java │ ├── WholeSaler.java │ ├── OilRetailer.java │ └── PorkRetailer.java │ ├── pattern20160524BridgePattern │ ├── 桥梁模式.png │ ├── CompanyImplementor.java │ ├── CarCompanyBusi.java │ ├── BYDCompany.java │ ├── HongQICompany.java │ ├── CarCompanyBussiness.java │ └── MainTest.java │ ├── pattern20160629VisitorPattern │ ├── 访问者模式.png │ ├── Vistor.java │ ├── WY.java │ ├── Animal.java │ ├── X.java │ ├── Y.java │ └── MainTest.java │ ├── pattern20160515AdapterPattern2 │ ├── 适配器模式.png │ ├── UserInfoIntoInterface.java │ ├── UserInfoFromInterface.java │ ├── MainTest.java │ └── UserInfoInto.java │ ├── pattern20160518DecoratorPattern │ ├── 装饰模式.png │ ├── 装饰模式2.png │ ├── Dao.java │ ├── MainTest.java │ └── UserDaoDecoratorParent.java │ ├── pattern20160525CompositePattern │ ├── 组合模式.png │ ├── Leaf.java │ ├── Branch.java │ └── Corp.java │ ├── pattern20160604FlyWeightPattern │ ├── 享元模式.png │ └── MainTest.java │ ├── pattern20160625CommandPattern │ ├── 命令模式案例.png │ ├── ChoppingCommand.java │ ├── FeedHorseCommand.java │ ├── MakeFoodCommand.java │ ├── Command.java │ ├── TravelHorseCommand.java │ ├── Boss.java │ ├── Person.java │ ├── MainTest.java │ └── Man.java │ ├── pattern20160625CommandPattern1 │ ├── 命令模式案例.png │ ├── Command.java │ ├── ManCommand.java │ ├── WomanCommand.java │ ├── Boss.java │ ├── Person.java │ └── MainTest.java │ ├── pattern20160504BuilderPattern2 │ ├── 创建者模式改变行为.png │ ├── CarBuilder.java │ ├── BYDCar.java │ ├── HongQiCar.java │ ├── BYDCarBuilder.java │ ├── HongQiCarBuilder.java │ └── MainTest.java │ ├── pattern20160517ProxyPatternStatic │ ├── 代理模式.png │ ├── File.java │ ├── PDFFile.java │ ├── MainTest.java │ └── PDFProxy.java │ ├── pattern20160523FacadePattern2 │ ├── 外观模式UML2.png │ ├── OilMerchant.java │ ├── PorkMerchant.java │ ├── WY.java │ ├── WholeSaler.java │ ├── OilRetailer.java │ └── PorkRetailer.java │ ├── pattern20160612StrategyPattern │ ├── 策略模式类结构图.png │ ├── TrafficLight.java │ ├── RedLight.java │ ├── GreenLight.java │ ├── YellowLight.java │ ├── Context.java │ └── MainTest.java │ ├── pattern20160604FlyWeightPattern2 │ ├── 享元模式公交车案例.png │ ├── MainTest.java │ └── WangYang.java │ ├── pattern20160608ObserverPatternPush │ ├── 观察者模式推.png │ ├── Observer.java │ ├── WY.java │ ├── XX.java │ ├── Observable.java │ └── MainTest.java │ ├── pattern20160617ChainOfResponsibility │ ├── 责任链模式.png │ ├── LocalHandler.java │ ├── FirstHandler.java │ ├── SecondHandler.java │ └── MainTest.java │ ├── pattern2016032001SingleResponsibility │ ├── 1单一职责原则.png │ └── Car.java │ ├── pattern2016032102SimpleFactoryPattern │ ├── 简单工厂模式.png │ ├── Factory.java │ ├── Car.java │ ├── BYD.java │ ├── HongQi.java │ └── CarFactory.java │ ├── pattern2016032103FactoryMethodPattern │ ├── 工厂方法模式.png │ ├── Factory.java │ ├── BYDFactory.java │ ├── Car.java │ ├── HongQiFactory.java │ ├── BYD.java │ ├── HongQi.java │ └── MainTest.java │ ├── pattern20160606TemplateMethodPattern │ ├── 模板方法模式.png │ ├── MainTest.java │ ├── Car.java │ ├── BYDCar.java │ └── HongQiCar.java │ ├── pattern20160625CommandPatternTemplate │ ├── 命令模式模板.png │ ├── Receiver.java │ ├── Receiver1.java │ ├── Receiver2.java │ ├── Command.java │ ├── Command1.java │ ├── Command2.java │ ├── Invoker.java │ └── Test.java │ ├── pattern20160629VisitorPatternExtend │ ├── 访问者模式拓展.png │ ├── Visitor.java │ ├── CommonEmployee.java │ └── Manager.java │ ├── pattern20160629VisitorPatternTempla │ ├── 访问者模式模板.png │ ├── Vistor.java │ ├── ConcreteVistor1.java │ ├── Element.java │ ├── ConcreteEle1.java │ ├── ConcreteEle2.java │ └── MainTest.java │ ├── pattern2016032002SingleResponsibility │ ├── 1单一职责原则2.png │ ├── CarOperate.java │ ├── Car.java │ └── CarAction.java │ ├── pattern2016032003SingleResponsibility │ ├── 1单一职责原则3.png │ ├── CarAction.java │ ├── Car.java │ └── CarOperate.java │ ├── pattern2016032104AbstractFactoryPattern │ ├── 抽象工厂模式.png │ ├── BYD.java │ ├── HongQI.java │ ├── AbstractCarFactory.java │ ├── BYDFirstGenerCar.java │ ├── BYDSecondGenerCar.java │ ├── HongQiFirstGenerCar.java │ ├── HongQiSecondGenerCar.java │ ├── FirstGenerFactory.java │ └── SecondGenerFactory.java │ ├── pattern20160517ProxyPatternDynamic │ ├── File.java │ ├── PDFFile.java │ └── MainTest.java │ ├── pattern20160514PrototypePattern │ ├── QQ截图20160514203529.png │ ├── QQ截图20160514205214.png │ └── QQ截图20160514210200.png │ ├── pattern20160613StatePatternTrafficLight │ ├── 状态模式红绿灯案例.png │ ├── GreenLight.java │ └── State.java │ ├── pattern2016032004LiskovSubstitutionPrinciple │ ├── 2里氏替换原则.png │ ├── Calc.java │ └── CalcSon.java │ ├── pattern2016032012OpenClosedPrinciple │ ├── Car.java │ └── RealCar.java │ ├── pattern2016032013OpenClosedPrinciple │ ├── Car.java │ ├── CarMore.java │ ├── RealCar.java │ └── RealCarMoreInfo.java │ ├── pattern20160612StrategyPatternCalculator1 │ ├── 策略模式加减类图1.png │ ├── Calculator.java │ ├── Add.java │ ├── Sub.java │ ├── Context.java │ └── MainTest.java │ ├── pattern20160617ChainOfResponsibilityTemplate │ ├── 责任链模式模板.png │ ├── ConcreteHandler1.java │ ├── ConcreteHandler2.java │ └── ConcreteHandler3.java │ ├── pattern2016032006DependenceInversionPrinciple │ ├── 1依赖倒置原则反例.png │ ├── Soldier.java │ └── AK47Gun.java │ ├── pattern2016032007DependenceInversionPrinciple │ ├── 2依赖倒置原则改进.png │ ├── Gun.java │ ├── Soldier.java │ ├── AK47Gun.java │ ├── WYSoldier.java │ └── SniperRifle.java │ ├── pattern2016032008InterfaceSegregationPrinciple │ ├── 1接口隔离原则反例.png │ ├── Common.java │ └── MainTest.java │ ├── pattern2016032009InterfaceSegregationPrinciple │ ├── 2接口隔离原则改进.png │ ├── Common.java │ ├── DogInter.java │ ├── MainTest.java │ ├── BirdInter.java │ └── Dog.java │ ├── pattern2016032005LiskovSubstitutionPrincipleAbstract │ ├── 2里氏替换原则2.png │ ├── Calculator.java │ ├── Calc.java │ └── CalcSon.java │ ├── pattern20160608ObserverPatternPull │ ├── Observer2.java │ ├── WY.java │ ├── XX.java │ ├── Observable2.java │ └── MainTest.java │ ├── pattern2016032011LawOfDemeterPrinciple │ ├── Master.java │ └── MainTest.java │ ├── pattern20160709InterpreterPattern │ ├── Expression.java │ ├── SymbolExpression.java │ ├── VarExpression.java │ ├── AddExpression.java │ └── SubExpression.java │ ├── pattern2016032101SingletonPattern │ ├── Singleton06.java │ ├── Singleton04.java │ ├── MainTest.java │ ├── Singleton05.java │ ├── Singleton01.java │ ├── Singleton02.java │ └── Singleton03.java │ ├── pattern2016032010LawOfDemeterPrinciple │ ├── MainTest.java │ ├── Master.java │ └── Butler.java │ ├── pattern20160709MementoPattern │ ├── CareTaker.java │ ├── Memento.java │ ├── Originator.java │ └── MainTest.java │ ├── pattern20160612StrategyPatternCalculator2Enum │ ├── MainTest.java │ └── Context.java │ ├── pattern20160709MediatorPattern2 │ ├── AbstractEmployee.java │ ├── AbstractMediator.java │ ├── PurchaseMan.java │ ├── MainTest.java │ └── SaleMan.java │ ├── pattern20160515AdapterPattern │ ├── DataInto.java │ └── MainTest.java │ ├── pattern20160709MementoPatternClone │ └── MainTest.java │ └── pattern20160709MementoPatternMulti │ ├── Caretaker.java │ └── Memento.java ├── .classpath └── .project /bin/cn/design/pattern20160613StatePattern/状态模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160613StatePattern/状态模式.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160613StatePattern/状态模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160613StatePattern/状态模式.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160504BuilderPattern/Car.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160504BuilderPattern/Car.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160504BuilderPattern/创建者模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160504BuilderPattern/创建者模式.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160523FacadePattern/WY.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160523FacadePattern/WY.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160523FacadePattern/外观模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160523FacadePattern/外观模式.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160523FacadePattern/外观模式2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160523FacadePattern/外观模式2.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160523FacadePattern2/WY.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160523FacadePattern2/WY.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160524BridgePattern/桥梁模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160524BridgePattern/桥梁模式.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160613StatePattern/State.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160613StatePattern/State.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern/Man.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern/Man.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPattern/WY.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPattern/WY.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPattern/X.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPattern/X.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPattern/Y.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPattern/Y.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPattern/访问者模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPattern/访问者模式.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160504BuilderPattern/创建者模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160504BuilderPattern/创建者模式.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160523FacadePattern/外观模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160523FacadePattern/外观模式.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160523FacadePattern/外观模式2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160523FacadePattern/外观模式2.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160524BridgePattern/桥梁模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160524BridgePattern/桥梁模式.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160629VisitorPattern/访问者模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160629VisitorPattern/访问者模式.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160504BuilderPattern2/Car.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160504BuilderPattern2/Car.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160515AdapterPattern2/适配器模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160515AdapterPattern2/适配器模式.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160518DecoratorPattern/Dao.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160518DecoratorPattern/Dao.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160518DecoratorPattern/装饰模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160518DecoratorPattern/装饰模式.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160518DecoratorPattern/装饰模式2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160518DecoratorPattern/装饰模式2.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160523FacadePattern/Facade.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160523FacadePattern/Facade.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160523FacadePattern/外观模式UML.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160523FacadePattern/外观模式UML.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160525CompositePattern/组合模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160525CompositePattern/组合模式.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160604FlyWeightPattern/享元模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160604FlyWeightPattern/享元模式.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160613StatePattern/Context.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160613StatePattern/Context.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern/Boss.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern/Boss.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern/Woman.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern/Woman.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern/命令模式案例.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern/命令模式案例.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern1/Boss.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern1/Boss.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern1/Man.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern1/Man.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern1/命令模式案例.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern1/命令模式案例.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160515AdapterPattern2/适配器模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160515AdapterPattern2/适配器模式.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160518DecoratorPattern/装饰模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160518DecoratorPattern/装饰模式.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160518DecoratorPattern/装饰模式2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160518DecoratorPattern/装饰模式2.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160523FacadePattern/外观模式UML.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160523FacadePattern/外观模式UML.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160525CompositePattern/组合模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160525CompositePattern/组合模式.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160604FlyWeightPattern/享元模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160604FlyWeightPattern/享元模式.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPattern/命令模式案例.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160625CommandPattern/命令模式案例.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPattern1/命令模式案例.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160625CommandPattern1/命令模式案例.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160504BuilderPattern/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160504BuilderPattern/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160504BuilderPattern2/BYDCar.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160504BuilderPattern2/BYDCar.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160504BuilderPattern2/创建者模式改变行为.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160504BuilderPattern2/创建者模式改变行为.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160515AdapterPattern/DataFrom.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160515AdapterPattern/DataFrom.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160515AdapterPattern/DataInto.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160515AdapterPattern/DataInto.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160515AdapterPattern/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160515AdapterPattern/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160515AdapterPattern/Transfer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160515AdapterPattern/Transfer.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160517ProxyPatternStatic/File.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160517ProxyPatternStatic/File.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160517ProxyPatternStatic/代理模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160517ProxyPatternStatic/代理模式.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160523FacadePattern2/Facade.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160523FacadePattern2/Facade.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160523FacadePattern2/外观模式UML2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160523FacadePattern2/外观模式UML2.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160524BridgePattern/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160524BridgePattern/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160525CompositePattern/Branch.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160525CompositePattern/Branch.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160525CompositePattern/Client.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160525CompositePattern/Client.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160525CompositePattern/Corp.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160525CompositePattern/Corp.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160525CompositePattern/Leaf.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160525CompositePattern/Leaf.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160604FlyWeightPattern2/Bus.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160604FlyWeightPattern2/Bus.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160608ObserverPatternPull/WY.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160608ObserverPatternPull/WY.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160608ObserverPatternPull/XX.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160608ObserverPatternPull/XX.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160608ObserverPatternPush/WY.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160608ObserverPatternPush/WY.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160608ObserverPatternPush/XX.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160608ObserverPatternPush/XX.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160612StrategyPattern/Context.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160612StrategyPattern/Context.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160612StrategyPattern/策略模式类结构图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160612StrategyPattern/策略模式类结构图.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160613StatePattern/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160613StatePattern/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern/Command.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern/Command.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern/Person.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern/Person.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern1/Command.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern1/Command.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern1/Person.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern1/Person.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern1/Woman.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern1/Woman.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPattern/Animal.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPattern/Animal.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPattern/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPattern/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPattern/Vistor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPattern/Vistor.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MementoPattern/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MementoPattern/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MementoPattern/Memento.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MementoPattern/Memento.class -------------------------------------------------------------------------------- /src/cn/design/pattern20160504BuilderPattern2/创建者模式改变行为.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160504BuilderPattern2/创建者模式改变行为.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160517ProxyPatternStatic/代理模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160517ProxyPatternStatic/代理模式.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160523FacadePattern2/外观模式UML2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160523FacadePattern2/外观模式UML2.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160612StrategyPattern/策略模式类结构图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160612StrategyPattern/策略模式类结构图.png -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032012OpenClosedPrinciple/Car.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032012OpenClosedPrinciple/Car.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032013OpenClosedPrinciple/Car.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032013OpenClosedPrinciple/Car.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160504BuilderPattern/CarBuilder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160504BuilderPattern/CarBuilder.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160504BuilderPattern2/HongQiCar.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160504BuilderPattern2/HongQiCar.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160504BuilderPattern2/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160504BuilderPattern2/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160514PrototypePattern/Clothes.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160514PrototypePattern/Clothes.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160514PrototypePattern/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160514PrototypePattern/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160514PrototypePattern/WangYang.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160514PrototypePattern/WangYang.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160515AdapterPattern2/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160515AdapterPattern2/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160517ProxyPatternDynamic/File.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160517ProxyPatternDynamic/File.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160518DecoratorPattern/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160518DecoratorPattern/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160518DecoratorPattern/UserDao.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160518DecoratorPattern/UserDao.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160523FacadePattern/OilRetailer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160523FacadePattern/OilRetailer.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160523FacadePattern/WholeSaler.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160523FacadePattern/WholeSaler.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160523FacadePattern2/WholeSaler.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160523FacadePattern2/WholeSaler.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160524BridgePattern/BYDCompany.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160524BridgePattern/BYDCompany.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160604FlyWeightPattern/ExamRoom.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160604FlyWeightPattern/ExamRoom.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160604FlyWeightPattern/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160604FlyWeightPattern/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160604FlyWeightPattern2/享元模式公交车案例.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160604FlyWeightPattern2/享元模式公交车案例.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160606TemplateMethodPattern/Car.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160606TemplateMethodPattern/Car.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160608ObserverPatternPush/观察者模式推.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160608ObserverPatternPush/观察者模式推.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160612StrategyPattern/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160612StrategyPattern/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160612StrategyPattern/RedLight.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160612StrategyPattern/RedLight.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160617ChainOfResponsibility/责任链模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160617ChainOfResponsibility/责任链模式.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern1/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern1/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709InterpreterPattern/Client.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709InterpreterPattern/Client.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MediatorPattern/Airplane.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MediatorPattern/Airplane.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MediatorPattern/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MediatorPattern/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MediatorPattern2/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MediatorPattern2/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MediatorPattern2/Mediator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MediatorPattern2/Mediator.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MediatorPattern2/SaleMan.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MediatorPattern2/SaleMan.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MediatorPattern2/StoreMan.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MediatorPattern2/StoreMan.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MementoPattern/CareTaker.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MementoPattern/CareTaker.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MementoPattern/Originator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MementoPattern/Originator.class -------------------------------------------------------------------------------- /src/cn/design/pattern20160604FlyWeightPattern2/享元模式公交车案例.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160604FlyWeightPattern2/享元模式公交车案例.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160608ObserverPatternPush/观察者模式推.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160608ObserverPatternPush/观察者模式推.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160617ChainOfResponsibility/责任链模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160617ChainOfResponsibility/责任链模式.png -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032001SingleResponsibility/1单一职责原则.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032001SingleResponsibility/1单一职责原则.png -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032001SingleResponsibility/Car.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032001SingleResponsibility/Car.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032002SingleResponsibility/Car.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032002SingleResponsibility/Car.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032003SingleResponsibility/Car.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032003SingleResponsibility/Car.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032010LawOfDemeterPrinciple/Maid.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032010LawOfDemeterPrinciple/Maid.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032011LawOfDemeterPrinciple/Maid.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032011LawOfDemeterPrinciple/Maid.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032101SingletonPattern/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032101SingletonPattern/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032102SimpleFactoryPattern/BYD.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032102SimpleFactoryPattern/BYD.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032102SimpleFactoryPattern/Car.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032102SimpleFactoryPattern/Car.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032102SimpleFactoryPattern/简单工厂模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032102SimpleFactoryPattern/简单工厂模式.png -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032103FactoryMethodPattern/BYD.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032103FactoryMethodPattern/BYD.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032103FactoryMethodPattern/Car.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032103FactoryMethodPattern/Car.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032103FactoryMethodPattern/工厂方法模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032103FactoryMethodPattern/工厂方法模式.png -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032104AbstractFactoryPattern/BYD.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032104AbstractFactoryPattern/BYD.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160504BuilderPattern2/CarBuilder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160504BuilderPattern2/CarBuilder.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160515AdapterPattern2/UserInfoFrom.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160515AdapterPattern2/UserInfoFrom.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160515AdapterPattern2/UserInfoInto.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160515AdapterPattern2/UserInfoInto.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160517ProxyPatternDynamic/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160517ProxyPatternDynamic/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160517ProxyPatternDynamic/PDFFile.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160517ProxyPatternDynamic/PDFFile.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160517ProxyPatternDynamic/PDFProxy.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160517ProxyPatternDynamic/PDFProxy.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160517ProxyPatternStatic/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160517ProxyPatternStatic/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160517ProxyPatternStatic/PDFFile.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160517ProxyPatternStatic/PDFFile.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160517ProxyPatternStatic/PDFProxy.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160517ProxyPatternStatic/PDFProxy.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160523FacadePattern/PorkRetailer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160523FacadePattern/PorkRetailer.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160523FacadePattern2/OilMerchant.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160523FacadePattern2/OilMerchant.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160523FacadePattern2/OilRetailer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160523FacadePattern2/OilRetailer.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160523FacadePattern2/PorkMerchant.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160523FacadePattern2/PorkMerchant.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160523FacadePattern2/PorkRetailer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160523FacadePattern2/PorkRetailer.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160524BridgePattern/CarCompanyBusi.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160524BridgePattern/CarCompanyBusi.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160524BridgePattern/HongQICompany.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160524BridgePattern/HongQICompany.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160604FlyWeightPattern2/BusFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160604FlyWeightPattern2/BusFactory.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160604FlyWeightPattern2/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160604FlyWeightPattern2/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160604FlyWeightPattern2/WangYang.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160604FlyWeightPattern2/WangYang.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160606TemplateMethodPattern/BYDCar.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160606TemplateMethodPattern/BYDCar.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160606TemplateMethodPattern/模板方法模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160606TemplateMethodPattern/模板方法模式.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160608ObserverPatternPull/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160608ObserverPatternPull/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160608ObserverPatternPull/Turtle2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160608ObserverPatternPull/Turtle2.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160608ObserverPatternPush/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160608ObserverPatternPush/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160608ObserverPatternPush/Observer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160608ObserverPatternPush/Observer.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160608ObserverPatternPush/Turtle.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160608ObserverPatternPush/Turtle.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160612StrategyPattern/GreenLight.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160612StrategyPattern/GreenLight.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160612StrategyPattern/TrafficLight.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160612StrategyPattern/TrafficLight.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160612StrategyPattern/YellowLight.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160612StrategyPattern/YellowLight.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160613StatePattern/ConcreteState1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160613StatePattern/ConcreteState1.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160613StatePattern/ConcreteState2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160613StatePattern/ConcreteState2.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160613StatePatternTrafficLight/WY.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160613StatePatternTrafficLight/WY.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern1/ManCommand.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern1/ManCommand.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern1/WomanCommand.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern1/WomanCommand.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPatternTemplate/Test.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPatternTemplate/Test.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPatternTemplate/命令模式模板.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPatternTemplate/命令模式模板.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPatternExtend/Manager.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPatternExtend/Manager.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPatternExtend/Visitor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPatternExtend/Visitor.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPatternExtend/访问者模式拓展.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPatternExtend/访问者模式拓展.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPatternTempla/Element.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPatternTempla/Element.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPatternTempla/Vistor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPatternTempla/Vistor.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPatternTempla/访问者模式模板.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPatternTempla/访问者模式模板.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MediatorPattern/CNAirPlane.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MediatorPattern/CNAirPlane.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MediatorPattern/CNSHAirPlane.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MediatorPattern/CNSHAirPlane.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MediatorPattern/MainTest$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MediatorPattern/MainTest$1.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MediatorPattern/MainTest$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MediatorPattern/MainTest$2.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MediatorPattern2/PurchaseMan.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MediatorPattern2/PurchaseMan.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MementoPatternClone/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MementoPatternClone/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MementoPatternMulti/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MementoPatternMulti/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MementoPatternMulti/Memento.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MementoPatternMulti/Memento.class -------------------------------------------------------------------------------- /src/cn/design/pattern2016032001SingleResponsibility/1单一职责原则.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern2016032001SingleResponsibility/1单一职责原则.png -------------------------------------------------------------------------------- /src/cn/design/pattern2016032102SimpleFactoryPattern/简单工厂模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern2016032102SimpleFactoryPattern/简单工厂模式.png -------------------------------------------------------------------------------- /src/cn/design/pattern2016032103FactoryMethodPattern/工厂方法模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern2016032103FactoryMethodPattern/工厂方法模式.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160517ProxyPatternStatic/File.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160517ProxyPatternStatic; 2 | 3 | public interface File { 4 | 5 | public void openFile(); 6 | } 7 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160606TemplateMethodPattern/模板方法模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160606TemplateMethodPattern/模板方法模式.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPatternTemplate/命令模式模板.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160625CommandPatternTemplate/命令模式模板.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160629VisitorPatternExtend/访问者模式拓展.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160629VisitorPatternExtend/访问者模式拓展.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160629VisitorPatternTempla/访问者模式模板.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160629VisitorPatternTempla/访问者模式模板.png -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032001SingleResponsibility/CarImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032001SingleResponsibility/CarImpl.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032002SingleResponsibility/1单一职责原则2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032002SingleResponsibility/1单一职责原则2.png -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032002SingleResponsibility/CarImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032002SingleResponsibility/CarImpl.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032003SingleResponsibility/1单一职责原则3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032003SingleResponsibility/1单一职责原则3.png -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032003SingleResponsibility/CarImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032003SingleResponsibility/CarImpl.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032010LawOfDemeterPrinciple/Butler.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032010LawOfDemeterPrinciple/Butler.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032010LawOfDemeterPrinciple/Master.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032010LawOfDemeterPrinciple/Master.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032011LawOfDemeterPrinciple/Butler.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032011LawOfDemeterPrinciple/Butler.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032011LawOfDemeterPrinciple/Master.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032011LawOfDemeterPrinciple/Master.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032012OpenClosedPrinciple/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032012OpenClosedPrinciple/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032012OpenClosedPrinciple/RealCar.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032012OpenClosedPrinciple/RealCar.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032013OpenClosedPrinciple/CarMore.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032013OpenClosedPrinciple/CarMore.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032013OpenClosedPrinciple/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032013OpenClosedPrinciple/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032013OpenClosedPrinciple/RealCar.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032013OpenClosedPrinciple/RealCar.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032101SingletonPattern/Singleton01.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032101SingletonPattern/Singleton01.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032101SingletonPattern/Singleton02.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032101SingletonPattern/Singleton02.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032101SingletonPattern/Singleton03.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032101SingletonPattern/Singleton03.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032101SingletonPattern/Singleton04.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032101SingletonPattern/Singleton04.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032101SingletonPattern/Singleton05.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032101SingletonPattern/Singleton05.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032101SingletonPattern/Singleton06.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032101SingletonPattern/Singleton06.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032102SimpleFactoryPattern/Factory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032102SimpleFactoryPattern/Factory.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032102SimpleFactoryPattern/HongQi.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032102SimpleFactoryPattern/HongQi.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032103FactoryMethodPattern/Factory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032103FactoryMethodPattern/Factory.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032103FactoryMethodPattern/HongQi.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032103FactoryMethodPattern/HongQi.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032104AbstractFactoryPattern/抽象工厂模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032104AbstractFactoryPattern/抽象工厂模式.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160504BuilderPattern2/BYDCarBuilder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160504BuilderPattern2/BYDCarBuilder.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160517ProxyPatternDynamic/PDFProxy$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160517ProxyPatternDynamic/PDFProxy$1.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160604FlyWeightPattern/SignUpFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160604FlyWeightPattern/SignUpFactory.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160606TemplateMethodPattern/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160606TemplateMethodPattern/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160608ObserverPatternPull/Observer2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160608ObserverPatternPull/Observer2.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160608ObserverPatternPush/Observable.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160608ObserverPatternPush/Observable.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160612StrategyPatternCalculator1/Add.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160612StrategyPatternCalculator1/Add.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160612StrategyPatternCalculator1/Sub.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160612StrategyPatternCalculator1/Sub.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160613StatePatternTrafficLight/State.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160613StatePatternTrafficLight/State.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160617ChainOfResponsibility/Handler.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160617ChainOfResponsibility/Handler.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160617ChainOfResponsibility/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160617ChainOfResponsibility/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern/ChoppingCommand.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern/ChoppingCommand.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern/MakeFoodCommand.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern/MakeFoodCommand.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPatternTemplate/Command.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPatternTemplate/Command.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPatternTemplate/Invoker.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPatternTemplate/Invoker.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPatternExtend/Employee.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPatternExtend/Employee.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPatternExtend/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPatternExtend/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPatternTempla/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPatternTempla/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709InterpreterPattern/Calculator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709InterpreterPattern/Calculator.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709InterpreterPattern/Expression.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709InterpreterPattern/Expression.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MementoPatternClone/Originator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MementoPatternClone/Originator.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MementoPatternMulti/BeanUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MementoPatternMulti/BeanUtils.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MementoPatternMulti/Caretaker.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MementoPatternMulti/Caretaker.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MementoPatternMulti/Originator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MementoPatternMulti/Originator.class -------------------------------------------------------------------------------- /src/cn/design/pattern2016032002SingleResponsibility/1单一职责原则2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern2016032002SingleResponsibility/1单一职责原则2.png -------------------------------------------------------------------------------- /src/cn/design/pattern2016032003SingleResponsibility/1单一职责原则3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern2016032003SingleResponsibility/1单一职责原则3.png -------------------------------------------------------------------------------- /src/cn/design/pattern2016032104AbstractFactoryPattern/抽象工厂模式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern2016032104AbstractFactoryPattern/抽象工厂模式.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160517ProxyPatternDynamic/File.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160517ProxyPatternDynamic; 2 | 3 | public interface File { 4 | 5 | public void openFile(); 6 | } 7 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160523FacadePattern2/OilMerchant.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160523FacadePattern2; 2 | 3 | public interface OilMerchant { 4 | 5 | public String getOil(); 6 | } 7 | -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032001SingleResponsibility/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032001SingleResponsibility/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032002SingleResponsibility/CarAction.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032002SingleResponsibility/CarAction.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032002SingleResponsibility/CarOperate.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032002SingleResponsibility/CarOperate.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032002SingleResponsibility/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032002SingleResponsibility/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032003SingleResponsibility/CarAction.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032003SingleResponsibility/CarAction.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032003SingleResponsibility/CarOperate.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032003SingleResponsibility/CarOperate.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032003SingleResponsibility/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032003SingleResponsibility/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032010LawOfDemeterPrinciple/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032010LawOfDemeterPrinciple/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032011LawOfDemeterPrinciple/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032011LawOfDemeterPrinciple/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032102SimpleFactoryPattern/CarFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032102SimpleFactoryPattern/CarFactory.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032103FactoryMethodPattern/BYDFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032103FactoryMethodPattern/BYDFactory.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032103FactoryMethodPattern/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032103FactoryMethodPattern/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032104AbstractFactoryPattern/HongQI.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032104AbstractFactoryPattern/HongQI.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032104AbstractFactoryPattern/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032104AbstractFactoryPattern/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160504BuilderPattern/HongQICarBuilder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160504BuilderPattern/HongQICarBuilder.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160504BuilderPattern2/HongQiCarBuilder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160504BuilderPattern2/HongQiCarBuilder.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160514PrototypePattern/QQ截图20160514203529.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160514PrototypePattern/QQ截图20160514203529.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160514PrototypePattern/QQ截图20160514205214.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160514PrototypePattern/QQ截图20160514205214.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160514PrototypePattern/QQ截图20160514210200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160514PrototypePattern/QQ截图20160514210200.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160515AdapterPattern2/UserInfoTransfer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160515AdapterPattern2/UserInfoTransfer.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160518DecoratorPattern/UserDaoDecorator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160518DecoratorPattern/UserDaoDecorator.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160524BridgePattern/CarCompanyBussiness.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160524BridgePattern/CarCompanyBussiness.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160524BridgePattern/CompanyImplementor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160524BridgePattern/CompanyImplementor.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160606TemplateMethodPattern/HongQiCar.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160606TemplateMethodPattern/HongQiCar.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160608ObserverPatternPull/Observable2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160608ObserverPatternPull/Observable2.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160613StatePatternTrafficLight/Context.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160613StatePatternTrafficLight/Context.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160613StatePatternTrafficLight/RedLight.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160613StatePatternTrafficLight/RedLight.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160613StatePatternTrafficLight/状态模式红绿灯案例.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160613StatePatternTrafficLight/状态模式红绿灯案例.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern/FeedHorseCommand.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern/FeedHorseCommand.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPattern/TravelHorseCommand.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPattern/TravelHorseCommand.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPatternTemplate/Command1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPatternTemplate/Command1.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPatternTemplate/Command2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPatternTemplate/Command2.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPatternTemplate/Receiver.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPatternTemplate/Receiver.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPatternTemplate/Receiver1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPatternTemplate/Receiver1.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160625CommandPatternTemplate/Receiver2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160625CommandPatternTemplate/Receiver2.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPatternTempla/ConcreteEle1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPatternTempla/ConcreteEle1.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPatternTempla/ConcreteEle2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPatternTempla/ConcreteEle2.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709InterpreterPattern/AddExpression.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709InterpreterPattern/AddExpression.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709InterpreterPattern/SubExpression.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709InterpreterPattern/SubExpression.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709InterpreterPattern/VarExpression.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709InterpreterPattern/VarExpression.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MediatorPattern/AriportMediator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MediatorPattern/AriportMediator.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MediatorPattern2/AbstractEmployee.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MediatorPattern2/AbstractEmployee.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709MediatorPattern2/AbstractMediator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709MediatorPattern2/AbstractMediator.class -------------------------------------------------------------------------------- /src/cn/design/pattern20160514PrototypePattern/QQ截图20160514203529.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160514PrototypePattern/QQ截图20160514203529.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160514PrototypePattern/QQ截图20160514205214.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160514PrototypePattern/QQ截图20160514205214.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160514PrototypePattern/QQ截图20160514210200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160514PrototypePattern/QQ截图20160514210200.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160523FacadePattern2/PorkMerchant.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160523FacadePattern2; 2 | 3 | public interface PorkMerchant { 4 | 5 | public String getPork(); 6 | } 7 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160613StatePatternTrafficLight/状态模式红绿灯案例.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160613StatePatternTrafficLight/状态模式红绿灯案例.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160629VisitorPattern/Vistor.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160629VisitorPattern; 2 | 3 | public interface Vistor { 4 | 5 | public void vist(Animal animal); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032004LiskovSubstitutionPrinciple/2里氏替换原则.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032004LiskovSubstitutionPrinciple/2里氏替换原则.png -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032004LiskovSubstitutionPrinciple/Calc.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032004LiskovSubstitutionPrinciple/Calc.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032007DependenceInversionPrinciple/Gun.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032007DependenceInversionPrinciple/Gun.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032008InterfaceSegregationPrinciple/Dog.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032008InterfaceSegregationPrinciple/Dog.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032009InterfaceSegregationPrinciple/Dog.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032009InterfaceSegregationPrinciple/Dog.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160612StrategyPatternCalculator1/Context.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160612StrategyPatternCalculator1/Context.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160612StrategyPatternCalculator1/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160612StrategyPatternCalculator1/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160612StrategyPatternCalculator1/策略模式加减类图1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160612StrategyPatternCalculator1/策略模式加减类图1.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160613StatePatternTrafficLight/GreenLight.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160613StatePatternTrafficLight/GreenLight.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160617ChainOfResponsibility/FirstHandler.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160617ChainOfResponsibility/FirstHandler.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160617ChainOfResponsibility/LocalHandler.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160617ChainOfResponsibility/LocalHandler.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160617ChainOfResponsibility/SecondHandler.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160617ChainOfResponsibility/SecondHandler.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160617ChainOfResponsibilityTemplate/责任链模式模板.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160617ChainOfResponsibilityTemplate/责任链模式模板.png -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPatternExtend/CommonEmployee.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPatternExtend/CommonEmployee.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160709InterpreterPattern/SymbolExpression.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160709InterpreterPattern/SymbolExpression.class -------------------------------------------------------------------------------- /src/cn/design/pattern2016032002SingleResponsibility/CarOperate.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032002SingleResponsibility; 2 | 3 | public interface CarOperate extends Car, CarAction{ 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032004LiskovSubstitutionPrinciple/2里氏替换原则.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern2016032004LiskovSubstitutionPrinciple/2里氏替换原则.png -------------------------------------------------------------------------------- /src/cn/design/pattern2016032012OpenClosedPrinciple/Car.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032012OpenClosedPrinciple; 2 | 3 | public interface Car { 4 | 5 | public String getCarName(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032013OpenClosedPrinciple/Car.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032013OpenClosedPrinciple; 2 | 3 | public interface Car { 4 | 5 | public String getCarName(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032103FactoryMethodPattern/Factory.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032103FactoryMethodPattern; 2 | 3 | public interface Factory { 4 | 5 | public Car createCar(); 6 | } 7 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032104AbstractFactoryPattern/BYD.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032104AbstractFactoryPattern; 2 | 3 | public interface BYD { 4 | 5 | public void printCarName(); 6 | } 7 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160612StrategyPatternCalculator1/策略模式加减类图1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160612StrategyPatternCalculator1/策略模式加减类图1.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160617ChainOfResponsibilityTemplate/责任链模式模板.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern20160617ChainOfResponsibilityTemplate/责任链模式模板.png -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032003SingleResponsibility/CarActionImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032003SingleResponsibility/CarActionImpl.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032004LiskovSubstitutionPrinciple/CalcSon.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032004LiskovSubstitutionPrinciple/CalcSon.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032004LiskovSubstitutionPrinciple/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032004LiskovSubstitutionPrinciple/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032006DependenceInversionPrinciple/1依赖倒置原则反例.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032006DependenceInversionPrinciple/1依赖倒置原则反例.png -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032006DependenceInversionPrinciple/AK47Gun.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032006DependenceInversionPrinciple/AK47Gun.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032006DependenceInversionPrinciple/Soldier.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032006DependenceInversionPrinciple/Soldier.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032007DependenceInversionPrinciple/2依赖倒置原则改进.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032007DependenceInversionPrinciple/2依赖倒置原则改进.png -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032007DependenceInversionPrinciple/AK47Gun.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032007DependenceInversionPrinciple/AK47Gun.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032007DependenceInversionPrinciple/Soldier.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032007DependenceInversionPrinciple/Soldier.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032008InterfaceSegregationPrinciple/Bird.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032008InterfaceSegregationPrinciple/Bird.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032008InterfaceSegregationPrinciple/Common.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032008InterfaceSegregationPrinciple/Common.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032009InterfaceSegregationPrinciple/Bird.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032009InterfaceSegregationPrinciple/Bird.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032009InterfaceSegregationPrinciple/Common.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032009InterfaceSegregationPrinciple/Common.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032013OpenClosedPrinciple/RealCarMoreInfo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032013OpenClosedPrinciple/RealCarMoreInfo.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032103FactoryMethodPattern/HongQiFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032103FactoryMethodPattern/HongQiFactory.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160515AdapterPattern2/UserInfoFromInterface.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160515AdapterPattern2/UserInfoFromInterface.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160515AdapterPattern2/UserInfoIntoInterface.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160515AdapterPattern2/UserInfoIntoInterface.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160612StrategyPatternCalculator1/Calculator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160612StrategyPatternCalculator1/Calculator.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160612StrategyPatternCalculator2Enum/Context.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160612StrategyPatternCalculator2Enum/Context.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160613StatePatternTrafficLight/YellowLight.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160613StatePatternTrafficLight/YellowLight.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160617ChainOfResponsibilityTemplate/Handler.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160617ChainOfResponsibilityTemplate/Handler.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160617ChainOfResponsibilityTemplate/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160617ChainOfResponsibilityTemplate/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPatternExtend/ConcreteVisitor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPatternExtend/ConcreteVisitor.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160629VisitorPatternTempla/ConcreteVistor1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160629VisitorPatternTempla/ConcreteVistor1.class -------------------------------------------------------------------------------- /src/cn/design/pattern2016032006DependenceInversionPrinciple/1依赖倒置原则反例.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern2016032006DependenceInversionPrinciple/1依赖倒置原则反例.png -------------------------------------------------------------------------------- /src/cn/design/pattern2016032007DependenceInversionPrinciple/2依赖倒置原则改进.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern2016032007DependenceInversionPrinciple/2依赖倒置原则改进.png -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPatternTemplate/Receiver.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPatternTemplate; 2 | 3 | public interface Receiver { 4 | 5 | public void doSomthing(); 6 | } 7 | -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032006DependenceInversionPrinciple/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032006DependenceInversionPrinciple/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032007DependenceInversionPrinciple/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032007DependenceInversionPrinciple/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032007DependenceInversionPrinciple/WYSoldier.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032007DependenceInversionPrinciple/WYSoldier.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032008InterfaceSegregationPrinciple/1接口隔离原则反例.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032008InterfaceSegregationPrinciple/1接口隔离原则反例.png -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032008InterfaceSegregationPrinciple/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032008InterfaceSegregationPrinciple/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032009InterfaceSegregationPrinciple/2接口隔离原则改进.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032009InterfaceSegregationPrinciple/2接口隔离原则改进.png -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032009InterfaceSegregationPrinciple/DogInter.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032009InterfaceSegregationPrinciple/DogInter.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032009InterfaceSegregationPrinciple/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032009InterfaceSegregationPrinciple/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032101SingletonPattern/Singleton05$Singleton.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032101SingletonPattern/Singleton05$Singleton.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160518DecoratorPattern/UserDaoDecoratorParent.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160518DecoratorPattern/UserDaoDecoratorParent.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160612StrategyPatternCalculator2Enum/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160612StrategyPatternCalculator2Enum/MainTest.class -------------------------------------------------------------------------------- /src/cn/design/pattern2016032008InterfaceSegregationPrinciple/1接口隔离原则反例.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern2016032008InterfaceSegregationPrinciple/1接口隔离原则反例.png -------------------------------------------------------------------------------- /src/cn/design/pattern2016032009InterfaceSegregationPrinciple/2接口隔离原则改进.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern2016032009InterfaceSegregationPrinciple/2接口隔离原则改进.png -------------------------------------------------------------------------------- /src/cn/design/pattern2016032013OpenClosedPrinciple/CarMore.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032013OpenClosedPrinciple; 2 | 3 | public interface CarMore extends Car{ 4 | 5 | public String getColor(); 6 | } 7 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160629VisitorPatternTempla/Vistor.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160629VisitorPatternTempla; 2 | 3 | public interface Vistor { 4 | 5 | public void vist(Element animal); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032005LiskovSubstitutionPrincipleAbstract/Calc.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032005LiskovSubstitutionPrincipleAbstract/Calc.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032007DependenceInversionPrinciple/SniperRifle.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032007DependenceInversionPrinciple/SniperRifle.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032009InterfaceSegregationPrinciple/BirdInter.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032009InterfaceSegregationPrinciple/BirdInter.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032104AbstractFactoryPattern/AbstractCarFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032104AbstractFactoryPattern/AbstractCarFactory.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032104AbstractFactoryPattern/BYDFirstGenerCar.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032104AbstractFactoryPattern/BYDFirstGenerCar.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032104AbstractFactoryPattern/BYDSecondGenerCar.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032104AbstractFactoryPattern/BYDSecondGenerCar.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032104AbstractFactoryPattern/FirstGenerFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032104AbstractFactoryPattern/FirstGenerFactory.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032104AbstractFactoryPattern/SecondGenerFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032104AbstractFactoryPattern/SecondGenerFactory.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160612StrategyPatternCalculator2Enum/Calculator$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160612StrategyPatternCalculator2Enum/Calculator$1.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160612StrategyPatternCalculator2Enum/Calculator$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160612StrategyPatternCalculator2Enum/Calculator$2.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160612StrategyPatternCalculator2Enum/Calculator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160612StrategyPatternCalculator2Enum/Calculator.class -------------------------------------------------------------------------------- /src/cn/design/pattern2016032102SimpleFactoryPattern/Factory.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032102SimpleFactoryPattern; 2 | 3 | public interface Factory { 4 | 5 | public Car createCar(String carName); 6 | } 7 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032104AbstractFactoryPattern/HongQI.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032104AbstractFactoryPattern; 2 | 3 | public interface HongQI { 4 | 5 | public abstract void printCarName(); 6 | } 7 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160608ObserverPatternPush/Observer.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160608ObserverPatternPush; 2 | 3 | public interface Observer { 4 | 5 | // 喂食 6 | public void feed(String info); 7 | } 8 | -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032005LiskovSubstitutionPrincipleAbstract/2里氏替换原则2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032005LiskovSubstitutionPrincipleAbstract/2里氏替换原则2.png -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032005LiskovSubstitutionPrincipleAbstract/CalcSon.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032005LiskovSubstitutionPrincipleAbstract/CalcSon.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032104AbstractFactoryPattern/HongQiFirstGenerCar.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032104AbstractFactoryPattern/HongQiFirstGenerCar.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032104AbstractFactoryPattern/HongQiSecondGenerCar.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032104AbstractFactoryPattern/HongQiSecondGenerCar.class -------------------------------------------------------------------------------- /src/cn/design/pattern2016032005LiskovSubstitutionPrincipleAbstract/2里氏替换原则2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/src/cn/design/pattern2016032005LiskovSubstitutionPrincipleAbstract/2里氏替换原则2.png -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032005LiskovSubstitutionPrincipleAbstract/Calculator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032005LiskovSubstitutionPrincipleAbstract/Calculator.class -------------------------------------------------------------------------------- /bin/cn/design/pattern2016032005LiskovSubstitutionPrincipleAbstract/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern2016032005LiskovSubstitutionPrincipleAbstract/MainTest.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160617ChainOfResponsibilityTemplate/ConcreteHandler1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160617ChainOfResponsibilityTemplate/ConcreteHandler1.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160617ChainOfResponsibilityTemplate/ConcreteHandler2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160617ChainOfResponsibilityTemplate/ConcreteHandler2.class -------------------------------------------------------------------------------- /bin/cn/design/pattern20160617ChainOfResponsibilityTemplate/ConcreteHandler3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyang135/DesignPatterns/HEAD/bin/cn/design/pattern20160617ChainOfResponsibilityTemplate/ConcreteHandler3.class -------------------------------------------------------------------------------- /src/cn/design/pattern2016032007DependenceInversionPrinciple/Gun.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032007DependenceInversionPrinciple; 2 | 3 | public interface Gun { 4 | /** 枪执行军人的动作进行射击*/ 5 | public void shoot(); 6 | } 7 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160515AdapterPattern2/UserInfoIntoInterface.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160515AdapterPattern2; 2 | 3 | public interface UserInfoIntoInterface { 4 | 5 | public UserInfoInto getUser(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160608ObserverPatternPull/Observer2.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160608ObserverPatternPull; 2 | 3 | public interface Observer2 { 4 | 5 | // 喂食 6 | public void feed(Observable2 observable); 7 | } 8 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032009InterfaceSegregationPrinciple/Common.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032009InterfaceSegregationPrinciple; 2 | 3 | public interface Common { 4 | 5 | // 抽取出公共的方法 6 | public void eatFood(); 7 | } 8 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032007DependenceInversionPrinciple/Soldier.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032007DependenceInversionPrinciple; 2 | 3 | public interface Soldier { 4 | /** 向着敌人开火 */ 5 | public void fireEnermy(Gun gun); 6 | } 7 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032011LawOfDemeterPrinciple/Master.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032011LawOfDemeterPrinciple; 2 | 3 | public class Master { 4 | 5 | public void cookCommand(Butler butler){ 6 | butler.cook(); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160612StrategyPattern/TrafficLight.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160612StrategyPattern; 2 | 3 | public interface TrafficLight { 4 | 5 | /** 6 | * 输出该灯对应的注意事项 7 | */ 8 | public void checkLight(); 9 | } 10 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160524BridgePattern/CompanyImplementor.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160524BridgePattern; 2 | 3 | public interface CompanyImplementor { 4 | 5 | public void produceCar(); 6 | 7 | public void sellCar(); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032005LiskovSubstitutionPrincipleAbstract/Calculator.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032005LiskovSubstitutionPrincipleAbstract; 2 | 3 | public abstract class Calculator { 4 | 5 | public abstract void calc(int a, int b); 6 | } 7 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032006DependenceInversionPrinciple/Soldier.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032006DependenceInversionPrinciple; 2 | 3 | public class Soldier { 4 | /** 向着敌人开火 */ 5 | public void fireEnermy(AK47Gun ak){ 6 | ak.shoot(); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160629VisitorPattern/WY.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160629VisitorPattern; 2 | 3 | public class WY implements Vistor { 4 | 5 | @Override 6 | public void vist(Animal animal) { 7 | animal.eatFood(); 8 | } 9 | 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160629VisitorPatternExtend/Visitor.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160629VisitorPatternExtend; 2 | 3 | public interface Visitor { 4 | 5 | public void visit(CommonEmployee commonEmp); 6 | 7 | public void visit(Manager manager); 8 | } 9 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032006DependenceInversionPrinciple/AK47Gun.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032006DependenceInversionPrinciple; 2 | 3 | public class AK47Gun { 4 | /** 枪执行军人的动作进行射击*/ 5 | public void shoot() { 6 | System.out.println("Fire!!"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032007DependenceInversionPrinciple/AK47Gun.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032007DependenceInversionPrinciple; 2 | 3 | public class AK47Gun implements Gun{ 4 | 5 | public void shoot() { 6 | System.out.println("AK Fire!!"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160709InterpreterPattern/Expression.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160709InterpreterPattern; 2 | 3 | import java.util.HashMap; 4 | 5 | public abstract class Expression { 6 | 7 | public abstract int interpreter(HashMap var); 8 | } 9 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160517ProxyPatternStatic/PDFFile.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160517ProxyPatternStatic; 2 | 3 | public class PDFFile implements File{ 4 | 5 | @Override 6 | public void openFile() { 7 | System.out.println("打开PDF!...."); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160525CompositePattern/Leaf.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160525CompositePattern; 2 | 3 | public class Leaf extends Corp { 4 | 5 | public Leaf(String name, String position, int salary) { 6 | super(name, position, salary); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160604FlyWeightPattern2/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160604FlyWeightPattern2; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | WangYang wy = new WangYang(); 7 | wy.gotoSchool(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160608ObserverPatternPush/WY.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160608ObserverPatternPush; 2 | 3 | public class WY implements Observer { 4 | 5 | @Override 6 | public void feed(String info) { 7 | System.out.println("喂饲料!"); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160608ObserverPatternPush/XX.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160608ObserverPatternPush; 2 | 3 | public class XX implements Observer { 4 | 5 | @Override 6 | public void feed(String info) { 7 | System.out.println("喂饲料!"); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160612StrategyPattern/RedLight.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160612StrategyPattern; 2 | 3 | public class RedLight implements TrafficLight { 4 | 5 | @Override 6 | public void checkLight() { 7 | System.out.println("停"); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160612StrategyPatternCalculator1/Calculator.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160612StrategyPatternCalculator1; 2 | 3 | public interface Calculator { 4 | 5 | /** 6 | * 计算结果 7 | * @return 8 | */ 9 | public int cal(int a, int b); 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032103FactoryMethodPattern/BYDFactory.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032103FactoryMethodPattern; 2 | 3 | public class BYDFactory implements Factory{ 4 | 5 | @Override 6 | public Car createCar() { 7 | return new BYD(); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160517ProxyPatternDynamic/PDFFile.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160517ProxyPatternDynamic; 2 | 3 | public class PDFFile implements File { 4 | 5 | @Override 6 | public void openFile() { 7 | System.out.println("打开PDF!..."); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160517ProxyPatternStatic/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160517ProxyPatternStatic; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | PDFProxy proxy = new PDFProxy(); 7 | proxy.openFile(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160523FacadePattern/WY.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160523FacadePattern; 2 | 3 | public class WY { 4 | 5 | public static void main(String[] args) { 6 | Facade facade = new Facade(); 7 | facade.getPork(); 8 | facade.getOil(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160612StrategyPattern/GreenLight.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160612StrategyPattern; 2 | 3 | public class GreenLight implements TrafficLight { 4 | 5 | @Override 6 | public void checkLight() { 7 | System.out.println("行"); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032102SimpleFactoryPattern/Car.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032102SimpleFactoryPattern; 2 | 3 | public interface Car { 4 | 5 | public abstract void setCarName(String carName); 6 | 7 | public abstract void setCarColor(String color); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032103FactoryMethodPattern/Car.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032103FactoryMethodPattern; 2 | 3 | public interface Car { 4 | 5 | public abstract void setCarName(String carName); 6 | 7 | public abstract void setCarColor(String color); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160523FacadePattern2/WY.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160523FacadePattern2; 2 | 3 | public class WY { 4 | 5 | public static void main(String[] args) { 6 | Facade facade = new Facade(); 7 | facade.getPork(); 8 | facade.getOil(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160612StrategyPattern/YellowLight.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160612StrategyPattern; 2 | 3 | public class YellowLight implements TrafficLight { 4 | 5 | @Override 6 | public void checkLight() { 7 | System.out.println("等一等"); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160612StrategyPatternCalculator1/Add.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160612StrategyPatternCalculator1; 2 | 3 | public class Add implements Calculator { 4 | 5 | @Override 6 | public int cal(int a, int b) { 7 | 8 | return a + b; 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160612StrategyPatternCalculator1/Sub.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160612StrategyPatternCalculator1; 2 | 3 | public class Sub implements Calculator { 4 | 5 | @Override 6 | public int cal(int a, int b) { 7 | 8 | return a - b; 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPattern/ChoppingCommand.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPattern; 2 | 3 | public class ChoppingCommand extends Command { 4 | 5 | @Override 6 | public void executeBossCommand() { 7 | this.man.chopping(); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPattern/FeedHorseCommand.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPattern; 2 | 3 | public class FeedHorseCommand extends Command { 4 | 5 | @Override 6 | public void executeBossCommand() { 7 | this.man.feedHorse(); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPattern/MakeFoodCommand.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPattern; 2 | 3 | public class MakeFoodCommand extends Command { 4 | 5 | @Override 6 | public void executeBossCommand() { 7 | this.woman.makeFood(); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032007DependenceInversionPrinciple/WYSoldier.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032007DependenceInversionPrinciple; 2 | 3 | public class WYSoldier implements Soldier{ 4 | 5 | @Override 6 | public void fireEnermy(Gun gun) { 7 | gun.shoot(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160629VisitorPattern/Animal.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160629VisitorPattern; 2 | 3 | public abstract class Animal { 4 | 5 | // 定义吃饭的方法 6 | public abstract void eatFood(); 7 | 8 | // 定义接收的观察者 9 | public abstract void accept(Vistor vistor); 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032103FactoryMethodPattern/HongQiFactory.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032103FactoryMethodPattern; 2 | 3 | public class HongQiFactory implements Factory{ 4 | 5 | @Override 6 | public Car createCar() { 7 | 8 | return new HongQi(); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPattern/Command.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPattern; 2 | 3 | public abstract class Command { 4 | 5 | protected Man man = new Man(); 6 | protected Woman woman = new Woman(); 7 | 8 | public abstract void executeBossCommand(); 9 | } 10 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPattern/TravelHorseCommand.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPattern; 2 | 3 | public class TravelHorseCommand extends Command { 4 | 5 | @Override 6 | public void executeBossCommand() { 7 | this.woman.travelWorld(); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPatternTemplate/Receiver1.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPatternTemplate; 2 | 3 | public class Receiver1 implements Receiver { 4 | 5 | @Override 6 | public void doSomthing() { 7 | System.out.println("Receiver1"); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPatternTemplate/Receiver2.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPatternTemplate; 2 | 3 | public class Receiver2 implements Receiver { 4 | 5 | @Override 6 | public void doSomthing() { 7 | System.out.println("Receiver2"); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160629VisitorPatternTempla/ConcreteVistor1.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160629VisitorPatternTempla; 2 | 3 | public class ConcreteVistor1 implements Vistor { 4 | 5 | @Override 6 | public void vist(Element ele) { 7 | ele.doSomething(); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032002SingleResponsibility/Car.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032002SingleResponsibility; 2 | 3 | public interface Car { 4 | 5 | /** 设置名称 */ 6 | public void setCarName(String carName); 7 | 8 | /** 设置颜色*/ 9 | public void setCarColor(String carColoe); 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPattern1/Command.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPattern1; 2 | 3 | public abstract class Command { 4 | 5 | protected Man man = new Man(); 6 | protected Woman woman = new Woman(); 7 | 8 | public abstract void executeBossCommand(); 9 | } 10 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032007DependenceInversionPrinciple/SniperRifle.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032007DependenceInversionPrinciple; 2 | 3 | public class SniperRifle implements Gun{ 4 | 5 | @Override 6 | public void shoot() { 7 | System.out.println("SniperRefle Fire!!"); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032104AbstractFactoryPattern/AbstractCarFactory.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032104AbstractFactoryPattern; 2 | 3 | public abstract class AbstractCarFactory { 4 | 5 | public abstract HongQI createHongQiCar(); 6 | 7 | public abstract BYD createBYDCar(); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032104AbstractFactoryPattern/BYDFirstGenerCar.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032104AbstractFactoryPattern; 2 | 3 | public class BYDFirstGenerCar implements BYD{ 4 | 5 | @Override 6 | public void printCarName() { 7 | System.out.println("BYD 1系"); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160504BuilderPattern2/CarBuilder.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160504BuilderPattern2; 2 | 3 | import java.util.List; 4 | 5 | public abstract class CarBuilder { 6 | 7 | public abstract void setOrder(List orderList); 8 | public abstract Car getCar(); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160523FacadePattern/WholeSaler.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160523FacadePattern; 2 | 3 | public class WholeSaler { 4 | 5 | public String getProk(){ 6 | return "WholeSaler-Prok"; 7 | } 8 | 9 | public String getOil(){ 10 | return "WholeSaler-Oil"; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160629VisitorPatternTempla/Element.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160629VisitorPatternTempla; 2 | 3 | public abstract class Element { 4 | 5 | // 定义方法 6 | public abstract void doSomething(); 7 | 8 | // 定义接收的观察者 9 | public abstract void accept(Vistor vistor); 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032004LiskovSubstitutionPrinciple/Calc.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032004LiskovSubstitutionPrinciple; 2 | 3 | public class Calc { 4 | 5 | public void calc(int a, int b) { 6 | // a-b = ? 7 | System.out.println(a + " - " + b + " = " + (a - b)); 8 | 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032104AbstractFactoryPattern/BYDSecondGenerCar.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032104AbstractFactoryPattern; 2 | 3 | public class BYDSecondGenerCar implements BYD{ 4 | 5 | @Override 6 | public void printCarName() { 7 | System.out.println("BYD 2系"); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032002SingleResponsibility/CarAction.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032002SingleResponsibility; 2 | 3 | public interface CarAction { 4 | 5 | /** 启动*/ 6 | public void startUp(); 7 | 8 | /** 行驶*/ 9 | public void run(); 10 | 11 | /** 停止*/ 12 | public void stop(); 13 | } 14 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032003SingleResponsibility/CarAction.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032003SingleResponsibility; 2 | 3 | public interface CarAction { 4 | 5 | /** 启动*/ 6 | public void startUp(); 7 | 8 | /** 行驶*/ 9 | public void run(); 10 | 11 | /** 停止*/ 12 | public void stop(); 13 | } 14 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032101SingletonPattern/Singleton06.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032101SingletonPattern; 2 | 3 | public enum Singleton06 { 4 | 5 | INSTANCE; 6 | 7 | private Singleton06(){ 8 | } 9 | 10 | public void print(){ 11 | System.out.println("Enum Singleton!"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032104AbstractFactoryPattern/HongQiFirstGenerCar.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032104AbstractFactoryPattern; 2 | 3 | public class HongQiFirstGenerCar implements HongQI{ 4 | 5 | @Override 6 | public void printCarName() { 7 | System.out.println("红旗1系!"); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032104AbstractFactoryPattern/HongQiSecondGenerCar.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032104AbstractFactoryPattern; 2 | 3 | public class HongQiSecondGenerCar implements HongQI{ 4 | 5 | @Override 6 | public void printCarName() { 7 | System.out.println("红旗2系!"); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160518DecoratorPattern/Dao.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160518DecoratorPattern; 2 | 3 | public interface Dao { 4 | 5 | public void saveUser(String user); 6 | 7 | public void saveHeadImages(String[] images); 8 | 9 | public void saveAll(String user, String[] images); 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032008InterfaceSegregationPrinciple/Common.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032008InterfaceSegregationPrinciple; 2 | 3 | public interface Common { 4 | 5 | public void eatFood(); 6 | 7 | public void run(); 8 | 9 | public void sing(); 10 | 11 | public void fly(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160604FlyWeightPattern2/WangYang.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160604FlyWeightPattern2; 2 | 3 | import java.util.Date; 4 | 5 | public class WangYang { 6 | 7 | public void gotoSchool(){ 8 | Bus bus = BusFactory.getBus(new Date()); 9 | System.out.println(bus); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160515AdapterPattern2/UserInfoFromInterface.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160515AdapterPattern2; 2 | 3 | import java.util.Map; 4 | 5 | public interface UserInfoFromInterface { 6 | 7 | public Map getUserInfo(); 8 | 9 | public Map getHomeAddress(); 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160517ProxyPatternDynamic/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160517ProxyPatternDynamic; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | PDFFile pdf = new PDFFile(); 7 | File proxy = (File) PDFProxy.getProxy(pdf); 8 | proxy.openFile(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160608ObserverPatternPull/WY.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160608ObserverPatternPull; 2 | 3 | public class WY implements Observer2 { 4 | 5 | @Override 6 | public void feed(Observable2 observer) { 7 | if(observer.isNeedFeed()){ 8 | System.out.println("喂食"); 9 | } 10 | } 11 | 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160608ObserverPatternPull/XX.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160608ObserverPatternPull; 2 | 3 | public class XX implements Observer2 { 4 | 5 | @Override 6 | public void feed(Observable2 observer) { 7 | if(observer.isNeedFeed()){ 8 | System.out.println("喂食"); 9 | } 10 | } 11 | 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160523FacadePattern/OilRetailer.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160523FacadePattern; 2 | 3 | public class OilRetailer { 4 | 5 | private WholeSaler wholeSaler = new WholeSaler(); 6 | 7 | public String getOil(){ 8 | System.out.println(wholeSaler.getOil()); 9 | return "OilRetailer-Oil"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032005LiskovSubstitutionPrincipleAbstract/Calc.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032005LiskovSubstitutionPrincipleAbstract; 2 | 3 | public class Calc extends Calculator{ 4 | 5 | public void calc(int a, int b) { 6 | // a-b = ? 7 | System.out.println(a + " - " + b + " = " + (a - b)); 8 | 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032010LawOfDemeterPrinciple/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032010LawOfDemeterPrinciple; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | Master master = new Master(); 7 | Butler butler = new Butler(); 8 | 9 | master.cookCommand(butler); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032011LawOfDemeterPrinciple/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032011LawOfDemeterPrinciple; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | Master master = new Master(); 7 | Butler butler = new Butler(); 8 | 9 | master.cookCommand(butler); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160523FacadePattern/PorkRetailer.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160523FacadePattern; 2 | 3 | public class PorkRetailer { 4 | 5 | private WholeSaler wholeSaler = new WholeSaler(); 6 | 7 | public String getPork(){ 8 | System.out.println(wholeSaler.getProk()); 9 | return "PorkRetailer-Pork"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPattern1/ManCommand.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPattern1; 2 | 3 | public class ManCommand extends Command{ 4 | 5 | /** 6 | * 让男人干点劈柴喂马的事 7 | */ 8 | @Override 9 | public void executeBossCommand() { 10 | this.man.chopping(); 11 | this.man.feedHorse(); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPatternTemplate/Command.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPatternTemplate; 2 | 3 | public abstract class Command { 4 | 5 | protected Receiver receiver; 6 | 7 | public Command(Receiver receiver) { 8 | this.receiver = receiver; 9 | } 10 | 11 | public abstract void execute(); 12 | } 13 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160523FacadePattern2/WholeSaler.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160523FacadePattern2; 2 | 3 | public class WholeSaler implements PorkMerchant, OilMerchant{ 4 | 5 | public String getPork(){ 6 | return "WholeSaler-Prok"; 7 | } 8 | 9 | public String getOil(){ 10 | return "WholeSaler-Oil"; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPattern1/WomanCommand.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPattern1; 2 | 3 | public class WomanCommand extends Command{ 4 | 5 | /** 6 | * 让女人干点做饭和周游世界的事 7 | */ 8 | @Override 9 | public void executeBossCommand() { 10 | this.woman.makeFood(); 11 | this.woman.travelWorld(); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160629VisitorPattern/X.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160629VisitorPattern; 2 | 3 | public class X extends Animal { 4 | 5 | @Override 6 | public void eatFood() { 7 | System.out.println("X...Eat Food!"); 8 | } 9 | 10 | @Override 11 | public void accept(Vistor vistor) { 12 | vistor.vist(this); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPatternTemplate/Command1.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPatternTemplate; 2 | 3 | public class Command1 extends Command { 4 | 5 | public Command1(Receiver receiver) { 6 | super(receiver); 7 | } 8 | 9 | @Override 10 | public void execute() { 11 | this.receiver.doSomthing(); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPatternTemplate/Command2.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPatternTemplate; 2 | 3 | public class Command2 extends Command { 4 | 5 | public Command2(Receiver receiver) { 6 | super(receiver); 7 | } 8 | 9 | @Override 10 | public void execute() { 11 | this.receiver.doSomthing(); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160709MementoPattern/CareTaker.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160709MementoPattern; 2 | 3 | public class CareTaker { 4 | 5 | private Memento memento; 6 | 7 | public Memento getMemento() { 8 | return memento; 9 | } 10 | 11 | public void setMemento(Memento memento) { 12 | this.memento = memento; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160517ProxyPatternStatic/PDFProxy.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160517ProxyPatternStatic; 2 | 3 | public class PDFProxy implements File{ 4 | 5 | private File file = null; 6 | 7 | @Override 8 | public void openFile() { 9 | if(file == null){ 10 | file = new PDFFile(); 11 | } 12 | file.openFile(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160523FacadePattern2/OilRetailer.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160523FacadePattern2; 2 | 3 | public class OilRetailer implements OilMerchant{ 4 | 5 | private WholeSaler wholeSaler = new WholeSaler(); 6 | 7 | public String getOil(){ 8 | System.out.println(wholeSaler.getOil()); 9 | return "OilRetailer-Oil"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160606TemplateMethodPattern/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160606TemplateMethodPattern; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | HongQiCar hongQiCar = new HongQiCar(); 7 | BYDCar byd = new BYDCar(); 8 | hongQiCar.templateMethod(); 9 | byd.templateMethod(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160612StrategyPatternCalculator2Enum/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160612StrategyPatternCalculator2Enum; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | Context context = new Context(); 7 | 8 | context.cal(1, "+", 2); 9 | 10 | context.cal(1, "-", 2); 11 | 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPattern/Boss.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPattern; 2 | 3 | public class Boss { 4 | 5 | private Command command; 6 | 7 | public void setCommand(Command command) { 8 | this.command = command; 9 | } 10 | 11 | public void executeCommand(){ 12 | this.command.executeBossCommand(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPattern1/Boss.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPattern1; 2 | 3 | public class Boss { 4 | 5 | private Command command; 6 | 7 | public void setCommand(Command command) { 8 | this.command = command; 9 | } 10 | 11 | public void executeCommand(){ 12 | this.command.executeBossCommand(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160629VisitorPattern/Y.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160629VisitorPattern; 2 | 3 | public class Y extends Animal { 4 | 5 | @Override 6 | public void eatFood() { 7 | System.out.println("Y...Eat Food!"); 8 | } 9 | 10 | @Override 11 | public void accept(Vistor vistor) { 12 | vistor.vist(this); 13 | } 14 | 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032101SingletonPattern/Singleton04.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032101SingletonPattern; 2 | 3 | public class Singleton04 { 4 | 5 | private static final Singleton04 singleton = new Singleton04(); 6 | 7 | private Singleton04(){ 8 | } 9 | 10 | public static Singleton04 getInstance(){ 11 | return singleton; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160523FacadePattern2/PorkRetailer.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160523FacadePattern2; 2 | 3 | public class PorkRetailer implements PorkMerchant { 4 | 5 | private WholeSaler wholeSaler = new WholeSaler(); 6 | 7 | public String getPork(){ 8 | System.out.println(wholeSaler.getPork()); 9 | return "PorkRetailer-Pork"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160608ObserverPatternPush/Observable.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160608ObserverPatternPush; 2 | 3 | public interface Observable { 4 | 5 | // 添加观察者 6 | public void addObserver(Observer observer); 7 | // 删除观察者 8 | public void removeObserver(Observer observer); 9 | // 通知观察者 10 | public void notifyObservers(String info); 11 | } 12 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPatternTemplate/Invoker.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPatternTemplate; 2 | 3 | public class Invoker { 4 | 5 | private Command command; 6 | 7 | public void setCommand(Command command) { 8 | this.command = command; 9 | } 10 | 11 | public void action() { 12 | this.command.execute(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160629VisitorPattern/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160629VisitorPattern; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | 7 | Animal y = new Y(); 8 | Animal x = new X(); 9 | 10 | Vistor vistor = new WY(); 11 | y.accept(vistor); 12 | 13 | x.accept(vistor); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160524BridgePattern/CarCompanyBusi.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160524BridgePattern; 2 | 3 | public abstract class CarCompanyBusi { 4 | 5 | protected CompanyImplementor carCompany; 6 | 7 | public CarCompanyBusi(CompanyImplementor carCompany){ 8 | this.carCompany = carCompany; 9 | } 10 | 11 | public abstract void getMoney(); 12 | } 13 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160709MediatorPattern2/AbstractEmployee.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160709MediatorPattern2; 2 | 3 | public abstract class AbstractEmployee { 4 | 5 | protected AbstractMediator mediator; 6 | 7 | public AbstractEmployee(){} 8 | 9 | public AbstractEmployee(AbstractMediator mediator) { 10 | this.mediator = mediator; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160524BridgePattern/BYDCompany.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160524BridgePattern; 2 | 3 | public class BYDCompany implements CompanyImplementor { 4 | 5 | @Override 6 | public void produceCar() { 7 | System.out.println("生产汽车"); 8 | } 9 | 10 | @Override 11 | public void sellCar() { 12 | System.out.println("出售汽车"); 13 | } 14 | 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160606TemplateMethodPattern/Car.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160606TemplateMethodPattern; 2 | 3 | public abstract class Car { 4 | 5 | public abstract void startUp(); 6 | public abstract void run(); 7 | public abstract void stop(); 8 | 9 | public void templateMethod(){ 10 | this.startUp(); 11 | this.run(); 12 | this.stop(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032101SingletonPattern/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032101SingletonPattern; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | Singleton01 singleton01 = Singleton01.getInstance(); 7 | 8 | Singleton02 singleton02 = Singleton02.getInstance(); 9 | 10 | Singleton06.INSTANCE.print(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160518DecoratorPattern/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160518DecoratorPattern; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | Dao userDao = new UserDao(); 7 | UserDaoDecorator decorator = new UserDaoDecorator(userDao); 8 | decorator.saveAll("wy", new String[]{"wyImage", "wangyangImage"}); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160524BridgePattern/HongQICompany.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160524BridgePattern; 2 | 3 | public class HongQICompany implements CompanyImplementor { 4 | 5 | @Override 6 | public void produceCar() { 7 | System.out.println("生产汽车"); 8 | } 9 | 10 | @Override 11 | public void sellCar() { 12 | System.out.println("出售汽车"); 13 | } 14 | 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160629VisitorPatternTempla/ConcreteEle1.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160629VisitorPatternTempla; 2 | 3 | public class ConcreteEle1 extends Element { 4 | 5 | @Override 6 | public void doSomething() { 7 | System.out.println("1...Eat Food!"); 8 | } 9 | 10 | @Override 11 | public void accept(Vistor vistor) { 12 | vistor.vist(this); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032003SingleResponsibility/Car.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032003SingleResponsibility; 2 | 3 | public interface Car { 4 | 5 | /** 设置名称 */ 6 | public void setCarName(String carName); 7 | /** 名称 */ 8 | public String getCarName(); 9 | 10 | /** 设置颜色*/ 11 | public void setCarColor(String carColoe); 12 | /** 颜色 */ 13 | public String getCarColor(); 14 | } 15 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160629VisitorPatternTempla/ConcreteEle2.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160629VisitorPatternTempla; 2 | 3 | public class ConcreteEle2 extends Element { 4 | 5 | @Override 6 | public void doSomething() { 7 | System.out.println("2...Eat Food!"); 8 | } 9 | 10 | @Override 11 | public void accept(Vistor vistor) { 12 | vistor.vist(this); 13 | } 14 | 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160515AdapterPattern2/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160515AdapterPattern2; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | UserInfoTransfer transfer = new UserInfoTransfer(); 7 | UserInfoInto userInto = transfer.getUser(); 8 | System.out.println(userInto.getUserName() + ">>" + userInto.getAddress() ); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160709InterpreterPattern/SymbolExpression.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160709InterpreterPattern; 2 | 3 | public abstract class SymbolExpression extends Expression { 4 | 5 | protected Expression left; 6 | protected Expression right; 7 | 8 | public SymbolExpression(Expression left, Expression right) { 9 | this.left = left; 10 | this.right = right; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160608ObserverPatternPull/Observable2.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160608ObserverPatternPull; 2 | 3 | public interface Observable2 { 4 | 5 | // 添加观察者 6 | public void addObserver(Observer2 observer); 7 | // 删除观察者 8 | public void removeObserver(Observer2 observer); 9 | // 通知观察者 10 | public void notifyObservers(); 11 | // 要喂食 12 | public boolean isNeedFeed(); 13 | } 14 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032009InterfaceSegregationPrinciple/DogInter.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032009InterfaceSegregationPrinciple; 2 | 3 | /** 4 | * 5 | * @ProjectName DesignPattern 6 | * @ClassName Dog 7 | * @Description 对于狗来说,他具有的特性是eatFood和run 8 | * @author wy 9 | * @date 2016-4-17 10 | * 11 | */ 12 | public interface DogInter extends Common { 13 | 14 | public void run(); 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032101SingletonPattern/Singleton05.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032101SingletonPattern; 2 | 3 | public class Singleton05 { 4 | 5 | private static class Singleton{ 6 | private static final Singleton05 instance = new Singleton05(); 7 | } 8 | 9 | private Singleton05(){ 10 | } 11 | 12 | public Singleton05 getInstance(){ 13 | return Singleton.instance; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032102SimpleFactoryPattern/BYD.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032102SimpleFactoryPattern; 2 | 3 | public class BYD implements Car{ 4 | 5 | @Override 6 | public void setCarName(String carName) { 7 | System.out.println("汽车名称:" + carName); 8 | } 9 | 10 | @Override 11 | public void setCarColor(String color) { 12 | System.out.println("汽车名称:" + color); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032103FactoryMethodPattern/BYD.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032103FactoryMethodPattern; 2 | 3 | public class BYD implements Car{ 4 | 5 | @Override 6 | public void setCarName(String carName) { 7 | System.out.println("汽车名称:" + carName); 8 | } 9 | 10 | @Override 11 | public void setCarColor(String color) { 12 | System.out.println("汽车名称:" + color); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160613StatePattern/ConcreteState2.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160613StatePattern; 2 | 3 | public class ConcreteState2 extends State { 4 | 5 | @Override 6 | public void behave1() { 7 | super.context.setCurrentState(Context.STATE1); 8 | super.context.behave1(); 9 | } 10 | 11 | @Override 12 | public void behave2() { 13 | System.out.println("状态2"); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160613StatePattern/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160613StatePattern; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | // 定义环境角色 7 | Context context = new Context(); 8 | 9 | // 初始化状态 10 | context.setCurrentState(new ConcreteState1()); 11 | 12 | // 执行行为 13 | context.behave1(); 14 | context.behave2(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032009InterfaceSegregationPrinciple/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032009InterfaceSegregationPrinciple; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | DogInter dog = new Dog(); 7 | dog.eatFood(); 8 | dog.run(); 9 | 10 | BirdInter bird = new Bird(); 11 | bird.eatFood(); 12 | bird.sing(); 13 | bird.fly(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160612StrategyPattern/Context.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160612StrategyPattern; 2 | 3 | public class Context { 4 | 5 | private TrafficLight light; 6 | 7 | public Context() { 8 | super(); 9 | } 10 | 11 | public Context(TrafficLight light) { 12 | super(); 13 | this.light = light; 14 | } 15 | 16 | public void checkLight(){ 17 | this.light.checkLight(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160629VisitorPatternTempla/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160629VisitorPatternTempla; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | 7 | Element y = new ConcreteEle1(); 8 | Element x = new ConcreteEle2(); 9 | 10 | Vistor vistor = new ConcreteVistor1(); 11 | y.accept(vistor); 12 | 13 | x.accept(vistor); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032008InterfaceSegregationPrinciple/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032008InterfaceSegregationPrinciple; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | Common dog = new Dog(); 7 | dog.eatFood(); 8 | dog.run(); 9 | 10 | Common bird = new Bird(); 11 | bird.eatFood(); 12 | bird.sing(); 13 | bird.fly(); 14 | 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032101SingletonPattern/Singleton01.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032101SingletonPattern; 2 | 3 | public class Singleton01 { 4 | 5 | private static Singleton01 singleton = null; 6 | 7 | private Singleton01(){} 8 | 9 | public static Singleton01 getInstance(){ 10 | 11 | if(singleton == null) 12 | singleton = new Singleton01(); 13 | 14 | return singleton; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032102SimpleFactoryPattern/HongQi.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032102SimpleFactoryPattern; 2 | 3 | public class HongQi implements Car{ 4 | 5 | @Override 6 | public void setCarName(String carName) { 7 | System.out.println("汽车名称:" + carName); 8 | } 9 | 10 | @Override 11 | public void setCarColor(String color) { 12 | System.out.println("汽车名称:" + color); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032103FactoryMethodPattern/HongQi.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032103FactoryMethodPattern; 2 | 3 | public class HongQi implements Car{ 4 | 5 | @Override 6 | public void setCarName(String carName) { 7 | System.out.println("汽车名称:" + carName); 8 | } 9 | 10 | @Override 11 | public void setCarColor(String color) { 12 | System.out.println("汽车名称:" + color); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160612StrategyPatternCalculator1/Context.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160612StrategyPatternCalculator1; 2 | 3 | public class Context { 4 | 5 | private Calculator cal; 6 | 7 | public Context() { 8 | } 9 | 10 | public Context(Calculator cal) { 11 | super(); 12 | this.cal = cal; 13 | } 14 | 15 | public int cal(int a, int b){ 16 | return this.cal.cal(a, b); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160613StatePattern/ConcreteState1.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160613StatePattern; 2 | 3 | public class ConcreteState1 extends State { 4 | 5 | @Override 6 | public void behave1() { 7 | System.out.println("状态1"); 8 | } 9 | 10 | @Override 11 | public void behave2() { 12 | super.context.setCurrentState(Context.STATE2); 13 | super.context.behave2(); 14 | } 15 | 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160617ChainOfResponsibility/LocalHandler.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160617ChainOfResponsibility; 2 | 3 | public class LocalHandler extends Handler { 4 | 5 | public LocalHandler() { 6 | super(); 7 | this.domain.put("www.baidu.com", "115.239.210.27"); 8 | } 9 | 10 | @Override 11 | public String response(String domain) { 12 | return this.domain.get(domain); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160613StatePattern/State.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160613StatePattern; 2 | 3 | public abstract class State { 4 | 5 | // 定义一个环境角色,提供子类访问 6 | protected Context context; 7 | // 设置环境角色 8 | public void setContext(Context context){ 9 | this.context = context; 10 | } 11 | 12 | // 行为1 13 | public abstract void behave1(); 14 | 15 | // 行为2 16 | public abstract void behave2(); 17 | } 18 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160617ChainOfResponsibility/FirstHandler.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160617ChainOfResponsibility; 2 | 3 | public class FirstHandler extends Handler { 4 | 5 | public FirstHandler() { 6 | super(); 7 | this.domain.put("www.alibaba.com", "140.205.94.232"); 8 | } 9 | 10 | @Override 11 | public String response(String domain) { 12 | return this.domain.get(domain); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPattern/Person.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPattern; 2 | 3 | public interface Person { 4 | 5 | /** 6 | * 劈柴 7 | */ 8 | public void chopping(); 9 | 10 | /** 11 | * 做饭 12 | */ 13 | public void makeFood(); 14 | 15 | /** 16 | * 喂马 17 | */ 18 | public void feedHorse(); 19 | 20 | /** 21 | * 周游世界 22 | */ 23 | public void travelWorld(); 24 | } 25 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPattern1/Person.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPattern1; 2 | 3 | public interface Person { 4 | 5 | /** 6 | * 劈柴 7 | */ 8 | public void chopping(); 9 | 10 | /** 11 | * 做饭 12 | */ 13 | public void makeFood(); 14 | 15 | /** 16 | * 喂马 17 | */ 18 | public void feedHorse(); 19 | 20 | /** 21 | * 周游世界 22 | */ 23 | public void travelWorld(); 24 | } 25 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160709MediatorPattern2/AbstractMediator.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160709MediatorPattern2; 2 | 3 | public abstract class AbstractMediator { 4 | 5 | protected static PurchaseMan purchase = new PurchaseMan(); 6 | protected static SaleMan sale = new SaleMan(); 7 | protected static StoreMan store = new StoreMan(); 8 | 9 | public abstract void executor(String exeStr, Object...obj); 10 | } 11 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160709MementoPattern/Memento.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160709MementoPattern; 2 | 3 | public class Memento { 4 | 5 | private String state = ""; 6 | 7 | public Memento(String state) { 8 | this.state = state; 9 | } 10 | 11 | public String getState() { 12 | return state; 13 | } 14 | 15 | public void setState(String state) { 16 | this.state = state; 17 | } 18 | 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032004LiskovSubstitutionPrinciple/CalcSon.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032004LiskovSubstitutionPrinciple; 2 | 3 | public class CalcSon extends Calc{ 4 | 5 | /*public void calc(int a, int b) { 6 | // a+b = ? 7 | System.out.println(a + " + " + b + " = " + (a + b)); 8 | }*/ 9 | 10 | // other method 11 | public void addThem(int a, int b) { 12 | System.out.println(a + b); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160612StrategyPatternCalculator2Enum/Context.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160612StrategyPatternCalculator2Enum; 2 | 3 | public class Context { 4 | 5 | public void cal(int a,String operator, int b){ 6 | if("+".equals(operator)){ 7 | System.out.println(Calculator.ADD.cal(a, b)); 8 | }else if("-".equals(operator)){ 9 | System.out.println(Calculator.SUB.cal(a, b)); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160613StatePatternTrafficLight/GreenLight.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160613StatePatternTrafficLight; 2 | 3 | public class GreenLight extends State { 4 | 5 | @Override 6 | public void pass() { 7 | System.out.println("通过路口"); 8 | } 9 | 10 | @Override 11 | public void stop() { 12 | // 不需要 13 | } 14 | 15 | @Override 16 | public void waiting() { 17 | // 不需要 18 | } 19 | 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160617ChainOfResponsibility/SecondHandler.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160617ChainOfResponsibility; 2 | 3 | public class SecondHandler extends Handler { 4 | 5 | public SecondHandler() { 6 | super(); 7 | this.domain.put("www.tecent.com", "183.60.38.45"); 8 | } 9 | 10 | @Override 11 | public String response(String domain) { 12 | 13 | return this.domain.get(domain); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032101SingletonPattern/Singleton02.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032101SingletonPattern; 2 | 3 | public class Singleton02 { 4 | 5 | private static Singleton02 singleton = null; 6 | 7 | private Singleton02(){} 8 | 9 | public synchronized static Singleton02 getInstance(){ 10 | 11 | if(singleton == null) 12 | singleton = new Singleton02(); 13 | 14 | return singleton; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032104AbstractFactoryPattern/FirstGenerFactory.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032104AbstractFactoryPattern; 2 | 3 | public class FirstGenerFactory extends AbstractCarFactory{ 4 | 5 | @Override 6 | public HongQI createHongQiCar() { 7 | 8 | return new HongQiFirstGenerCar(); 9 | } 10 | 11 | @Override 12 | public BYD createBYDCar() { 13 | return new BYDFirstGenerCar(); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032104AbstractFactoryPattern/SecondGenerFactory.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032104AbstractFactoryPattern; 2 | 3 | public class SecondGenerFactory extends AbstractCarFactory{ 4 | 5 | @Override 6 | public HongQI createHongQiCar() { 7 | 8 | return new HongQiSecondGenerCar(); 9 | } 10 | 11 | @Override 12 | public BYD createBYDCar() { 13 | return new BYDSecondGenerCar(); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160504BuilderPattern/CarBuilder.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160504BuilderPattern; 2 | 3 | public abstract class CarBuilder { 4 | 5 | protected Car car = new Car(); 6 | 7 | public abstract void setShape(String shape); 8 | 9 | public abstract void setAssemble(String assemble); 10 | 11 | public abstract void setColor(String color); 12 | 13 | public Car getCar(){ 14 | return this.car; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032001SingleResponsibility/Car.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032001SingleResponsibility; 2 | 3 | public interface Car { 4 | 5 | /** 设置名称 */ 6 | public void setCarName(String carName); 7 | 8 | /** 设置颜色*/ 9 | public void setCarColor(String carColoe); 10 | 11 | /** 启动*/ 12 | public void startUp(); 13 | 14 | /** 行驶*/ 15 | public void run(); 16 | 17 | /** 停止*/ 18 | public void stop(); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032005LiskovSubstitutionPrincipleAbstract/CalcSon.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032005LiskovSubstitutionPrincipleAbstract; 2 | 3 | public class CalcSon extends Calculator{ 4 | 5 | public void calc(int a, int b) { 6 | // a+b = ? 7 | System.out.println(a + " + " + b + " = " + (a + b)); 8 | } 9 | 10 | // other method 11 | public void addThem(int a, int b) { 12 | System.out.println(a + b); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032102SimpleFactoryPattern/CarFactory.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032102SimpleFactoryPattern; 2 | 3 | public class CarFactory implements Factory{ 4 | 5 | @Override 6 | public Car createCar(String carName) { 7 | Car car = null; 8 | if("HongQI".equals(carName)){ 9 | car = new HongQi(); 10 | }else if("BYD".equals(carName)){ 11 | car = new BYD(); 12 | } 13 | 14 | return car; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160524BridgePattern/CarCompanyBussiness.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160524BridgePattern; 2 | 3 | public class CarCompanyBussiness extends CarCompanyBusi{ 4 | 5 | public CarCompanyBussiness(CompanyImplementor company){ 6 | super(company); 7 | this.carCompany = company; 8 | } 9 | 10 | @Override 11 | public void getMoney() { 12 | this.carCompany.produceCar(); 13 | this.carCompany.sellCar(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160612StrategyPatternCalculator1/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160612StrategyPatternCalculator1; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | Context context = null; 7 | 8 | context = new Context(new Add()); 9 | System.out.println(context.cal(1, 2)); 10 | 11 | context = new Context(new Sub()); 12 | System.out.println(context.cal(1, 2)); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160613StatePatternTrafficLight/State.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160613StatePatternTrafficLight; 2 | 3 | public abstract class State { 4 | 5 | // 设置环境角色 6 | protected Context context; 7 | 8 | public void setContext(Context context) { 9 | this.context = context; 10 | } 11 | 12 | public abstract void pass(); 13 | 14 | public abstract void stop(); 15 | 16 | public abstract void waiting(); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | DesignPatterns 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032009InterfaceSegregationPrinciple/BirdInter.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032009InterfaceSegregationPrinciple; 2 | 3 | /** 4 | * 5 | * @ProjectName DesignPattern 6 | * @ClassName Dog 7 | * @Description 对于小鸟来说,他具有的特性是eatFood和sing以及fly 8 | * @author wy 9 | * @date 2016-4-17 10 | * 11 | */ 12 | public interface BirdInter extends Common{ 13 | 14 | public void sing(); 15 | 16 | public void fly(); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032012OpenClosedPrinciple/RealCar.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032012OpenClosedPrinciple; 2 | 3 | public class RealCar implements Car{ 4 | 5 | private String carName; 6 | 7 | public RealCar() { 8 | super(); 9 | } 10 | 11 | public RealCar(String carName) { 12 | super(); 13 | this.carName = carName; 14 | } 15 | 16 | @Override 17 | public String getCarName() { 18 | return carName; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032013OpenClosedPrinciple/RealCar.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032013OpenClosedPrinciple; 2 | 3 | public class RealCar implements Car{ 4 | 5 | private String carName; 6 | 7 | public RealCar() { 8 | super(); 9 | } 10 | 11 | public RealCar(String carName) { 12 | super(); 13 | this.carName = carName; 14 | } 15 | 16 | @Override 17 | public String getCarName() { 18 | return carName; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160504BuilderPattern2/BYDCar.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160504BuilderPattern2; 2 | 3 | public class BYDCar extends Car{ 4 | 5 | @Override 6 | public void startUp() { 7 | System.out.println("BYD启动"); 8 | } 9 | 10 | @Override 11 | public void run() { 12 | System.out.println("BYD行驶中"); 13 | 14 | } 15 | 16 | @Override 17 | public void stop() { 18 | System.out.println("BYD停止"); 19 | 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032010LawOfDemeterPrinciple/Master.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032010LawOfDemeterPrinciple; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class Master { 7 | 8 | public void cookCommand(Butler butler){ 9 | List maidList = new ArrayList(); 10 | for(int i = 0; i < 2; i++){ 11 | maidList.add(new Maid("maid" + i)); 12 | } 13 | 14 | butler.cook(maidList); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160504BuilderPattern2/HongQiCar.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160504BuilderPattern2; 2 | 3 | public class HongQiCar extends Car{ 4 | 5 | @Override 6 | public void startUp() { 7 | System.out.println("红旗车启动"); 8 | } 9 | 10 | @Override 11 | public void run() { 12 | System.out.println("红旗车行驶中"); 13 | 14 | } 15 | 16 | @Override 17 | public void stop() { 18 | System.out.println("红旗车停止"); 19 | 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160518DecoratorPattern/UserDaoDecoratorParent.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160518DecoratorPattern; 2 | 3 | public abstract class UserDaoDecoratorParent implements Dao { 4 | 5 | protected Dao userDao; 6 | 7 | public UserDaoDecoratorParent(Dao userDao) { 8 | super(); 9 | this.userDao = userDao; 10 | } 11 | 12 | public abstract void startTranscation(); 13 | 14 | public abstract void stopTranscation(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160606TemplateMethodPattern/BYDCar.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160606TemplateMethodPattern; 2 | 3 | public class BYDCar extends Car{ 4 | 5 | @Override 6 | public void startUp() { 7 | System.out.println("BYDCar 启动!"); 8 | } 9 | 10 | @Override 11 | public void run() { 12 | System.out.println("BYDCar 跑起来!"); 13 | } 14 | 15 | @Override 16 | public void stop() { 17 | System.out.println("BYDCar 停止!"); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160629VisitorPatternExtend/CommonEmployee.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160629VisitorPatternExtend; 2 | 3 | public class CommonEmployee extends Employee { 4 | 5 | private String job; 6 | 7 | @Override 8 | public void accept(Visitor visitor) { 9 | visitor.visit(this); 10 | } 11 | 12 | public String getJob() { 13 | return job; 14 | } 15 | 16 | public void setJob(String job) { 17 | this.job = job; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160608ObserverPatternPull/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160608ObserverPatternPull; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | // 观察者 7 | Observer2 wy = new WY(); 8 | Observer2 xx = new XX(); 9 | 10 | // 被观察者 11 | Observable2 turtle = new Turtle2(); 12 | 13 | turtle.addObserver(wy); 14 | turtle.addObserver(xx); 15 | 16 | turtle.notifyObservers(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160608ObserverPatternPush/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160608ObserverPatternPush; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | // 观察者 7 | Observer wy = new WY(); 8 | Observer xx = new XX(); 9 | 10 | // 被观察者 11 | Observable turtle = new Turtle(); 12 | 13 | turtle.addObserver(wy); 14 | turtle.addObserver(xx); 15 | 16 | turtle.notifyObservers("吃饭"); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPattern/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPattern; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | Boss boss = new Boss(); 7 | Command command1 = new ChoppingCommand(); 8 | boss.setCommand(command1); 9 | boss.executeCommand(); 10 | 11 | Command command2 = new MakeFoodCommand(); 12 | boss.setCommand(command2); 13 | boss.executeCommand(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPatternTemplate/Test.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPatternTemplate; 2 | 3 | public class Test { 4 | 5 | public static void main(String[] args) { 6 | // 调用者 7 | Invoker invoker = new Invoker(); 8 | 9 | // 接收者 10 | Receiver receiver = new Receiver1(); 11 | 12 | // 命令角色 13 | Command command = new Command1(receiver); 14 | 15 | invoker.setCommand(command); 16 | invoker.action(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032010LawOfDemeterPrinciple/Butler.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032010LawOfDemeterPrinciple; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * 7 | * @ProjectName DesignPattern 8 | * @ClassName Butler 9 | * @Description 雇佣的管家 10 | * @author wy 11 | * @date 2016-4-18 12 | * 13 | */ 14 | public class Butler { 15 | 16 | public void cook(List maidList){ 17 | for (Maid maid : maidList) { 18 | maid.cook(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032013OpenClosedPrinciple/RealCarMoreInfo.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032013OpenClosedPrinciple; 2 | 3 | public class RealCarMoreInfo extends RealCar{ 4 | 5 | private String color; 6 | 7 | public RealCarMoreInfo() { 8 | super(); 9 | } 10 | 11 | public RealCarMoreInfo(String carName, String color) { 12 | super(carName); 13 | this.color = color; 14 | } 15 | 16 | public String getColor() { 17 | return color; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160504BuilderPattern2/BYDCarBuilder.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160504BuilderPattern2; 2 | 3 | import java.util.List; 4 | 5 | public class BYDCarBuilder extends CarBuilder{ 6 | 7 | private BYDCar bydCar = new BYDCar(); 8 | 9 | @Override 10 | public void setOrder(List orderList) { 11 | this.bydCar.setOrder(orderList); 12 | } 13 | 14 | @Override 15 | public Car getCar() { 16 | 17 | return this.bydCar; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160606TemplateMethodPattern/HongQiCar.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160606TemplateMethodPattern; 2 | 3 | public class HongQiCar extends Car{ 4 | 5 | @Override 6 | public void startUp() { 7 | System.out.println("HongQiCar 启动!"); 8 | } 9 | 10 | @Override 11 | public void run() { 12 | System.out.println("HongQiCar 跑起来!"); 13 | } 14 | 15 | @Override 16 | public void stop() { 17 | System.out.println("HongQiCar 停止!"); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160629VisitorPatternExtend/Manager.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160629VisitorPatternExtend; 2 | 3 | public class Manager extends Employee { 4 | 5 | private String perform; 6 | 7 | @Override 8 | public void accept(Visitor visitor) { 9 | visitor.visit(this); 10 | } 11 | 12 | public String getPerform() { 13 | return perform; 14 | } 15 | 16 | public void setPerform(String perform) { 17 | this.perform = perform; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160709InterpreterPattern/VarExpression.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160709InterpreterPattern; 2 | 3 | import java.util.HashMap; 4 | 5 | public class VarExpression extends Expression { 6 | 7 | private String key; 8 | 9 | public VarExpression(String key){ 10 | this.key = key; 11 | } 12 | 13 | @Override 14 | public int interpreter(HashMap var) { 15 | 16 | int value = var.get(key); 17 | return value; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160515AdapterPattern/DataInto.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160515AdapterPattern; 2 | 3 | public class DataInto { 4 | 5 | private String id; 6 | 7 | private int num; 8 | 9 | public String getId() { 10 | return id; 11 | } 12 | 13 | public void setId(String id) { 14 | this.id = id; 15 | } 16 | 17 | public int getNum() { 18 | return num; 19 | } 20 | 21 | public void setNum(int num) { 22 | this.num = num; 23 | } 24 | 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160524BridgePattern/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160524BridgePattern; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | HongQICompany hq = new HongQICompany(); 7 | CarCompanyBusi companyBusi = new CarCompanyBussiness(hq); 8 | companyBusi.getMoney(); 9 | 10 | BYDCompany byd = new BYDCompany(); 11 | companyBusi = new CarCompanyBussiness(byd); 12 | companyBusi.getMoney(); 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160612StrategyPattern/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160612StrategyPattern; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | Context context = null; 7 | context = new Context(new RedLight()); 8 | context.checkLight(); 9 | 10 | context = new Context(new YellowLight()); 11 | context.checkLight(); 12 | 13 | context = new Context(new GreenLight()); 14 | context.checkLight(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPattern1/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPattern1; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | Boss boss = new Boss(); 7 | ManCommand manCommand = new ManCommand(); 8 | boss.setCommand(manCommand); 9 | boss.executeCommand(); 10 | 11 | WomanCommand womanCommand = new WomanCommand(); 12 | boss.setCommand(womanCommand); 13 | boss.executeCommand(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160515AdapterPattern/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160515AdapterPattern; 2 | 3 | import java.util.List; 4 | 5 | public class MainTest { 6 | 7 | public static void main(String[] args) { 8 | DataFrom from = new DataFrom(1, 2, 3); 9 | List dataIntoList = Transfer.getTransferData(from); 10 | for (DataInto dataInto : dataIntoList) { 11 | System.out.println(dataInto.getId() + ">>>" + dataInto.getNum()); 12 | } 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160709MediatorPattern2/PurchaseMan.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160709MediatorPattern2; 2 | 3 | public class PurchaseMan extends AbstractEmployee { 4 | 5 | public PurchaseMan(){ 6 | 7 | } 8 | 9 | public PurchaseMan(AbstractMediator mediator) { 10 | super(mediator); 11 | } 12 | 13 | public void buy(int i) { 14 | this.mediator.executor("buy", i); 15 | } 16 | 17 | public void stopBuy() { 18 | System.out.println("停止购买"); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160504BuilderPattern2/HongQiCarBuilder.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160504BuilderPattern2; 2 | 3 | import java.util.List; 4 | 5 | public class HongQiCarBuilder extends CarBuilder{ 6 | 7 | private HongQiCar hongQiCar = new HongQiCar(); 8 | 9 | @Override 10 | public void setOrder(List orderList) { 11 | this.hongQiCar.setOrder(orderList); 12 | } 13 | 14 | @Override 15 | public Car getCar() { 16 | 17 | return this.hongQiCar; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032003SingleResponsibility/CarOperate.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032003SingleResponsibility; 2 | 3 | public class CarOperate { 4 | 5 | private Car car ; 6 | private CarAction carAction ; 7 | 8 | public CarOperate(Car car, CarAction carAction){ 9 | this.car = car; 10 | this.carAction = carAction; 11 | } 12 | 13 | public Car getCar() { 14 | return car; 15 | } 16 | 17 | public CarAction getCarAction() { 18 | return carAction; 19 | } 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160709MediatorPattern2/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160709MediatorPattern2; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | 7 | Mediator mediator = new Mediator(); 8 | 9 | PurchaseMan purchase = new PurchaseMan(mediator); 10 | purchase.buy(100); 11 | 12 | SaleMan sale = new SaleMan(mediator); 13 | sale.sale(100); 14 | 15 | StoreMan store = new StoreMan(mediator); 16 | store.clearStore(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160709MementoPatternClone/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160709MementoPatternClone; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | Originator orig = new Originator(); 7 | orig.setState("很好"); 8 | System.out.println(orig.getState()); 9 | orig.createMemento(); 10 | 11 | orig.setState("不好"); 12 | System.out.println(orig.getState()); 13 | 14 | orig.backState(); 15 | System.out.println(orig.getState()); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160504BuilderPattern/HongQICarBuilder.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160504BuilderPattern; 2 | 3 | 4 | public class HongQICarBuilder extends CarBuilder{ 5 | 6 | @Override 7 | public void setShape(String shape) { 8 | this.car.setShape(shape); 9 | } 10 | 11 | @Override 12 | public void setAssemble(String assemble) { 13 | this.car.setAssemble(assemble); 14 | } 15 | 16 | @Override 17 | public void setColor(String color) { 18 | this.car.setColor(color); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160709InterpreterPattern/AddExpression.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160709InterpreterPattern; 2 | 3 | import java.util.HashMap; 4 | 5 | public class AddExpression extends SymbolExpression { 6 | 7 | public AddExpression(Expression left, Expression right) { 8 | super(left, right); 9 | } 10 | 11 | @Override 12 | public int interpreter(HashMap var) { 13 | // 左右两个表达式的值相加 14 | return super.left.interpreter(var) + super.right.interpreter(var); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160709InterpreterPattern/SubExpression.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160709InterpreterPattern; 2 | 3 | import java.util.HashMap; 4 | 5 | public class SubExpression extends SymbolExpression { 6 | 7 | public SubExpression(Expression left, Expression right) { 8 | super(left, right); 9 | } 10 | 11 | @Override 12 | public int interpreter(HashMap var) { 13 | // 把左右两个表达式的值相减 14 | return super.left.interpreter(var) - super.right.interpreter(var); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160709MementoPatternMulti/Caretaker.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160709MementoPatternMulti; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | public class Caretaker { 7 | 8 | private Map mementoMap = new HashMap(); 9 | 10 | public Map getMementoMap() { 11 | return mementoMap; 12 | } 13 | 14 | public void setMementoMap(Map mementoMap) { 15 | this.mementoMap = mementoMap; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160617ChainOfResponsibilityTemplate/ConcreteHandler1.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160617ChainOfResponsibilityTemplate; 2 | 3 | import java.util.logging.Level; 4 | 5 | import javax.xml.ws.Response; 6 | 7 | import org.omg.CORBA.Request; 8 | 9 | public class ConcreteHandler1 extends Handler { 10 | 11 | @Override 12 | protected Level getHandlerLevel() { 13 | return null; 14 | } 15 | 16 | @Override 17 | protected Response echo(Request requst) { 18 | return null; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160617ChainOfResponsibilityTemplate/ConcreteHandler2.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160617ChainOfResponsibilityTemplate; 2 | 3 | import java.util.logging.Level; 4 | 5 | import javax.xml.ws.Response; 6 | 7 | import org.omg.CORBA.Request; 8 | 9 | public class ConcreteHandler2 extends Handler { 10 | 11 | @Override 12 | protected Level getHandlerLevel() { 13 | return null; 14 | } 15 | 16 | @Override 17 | protected Response echo(Request requst) { 18 | return null; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160617ChainOfResponsibilityTemplate/ConcreteHandler3.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160617ChainOfResponsibilityTemplate; 2 | 3 | import java.util.logging.Level; 4 | 5 | import javax.xml.ws.Response; 6 | 7 | import org.omg.CORBA.Request; 8 | 9 | public class ConcreteHandler3 extends Handler { 10 | 11 | @Override 12 | protected Level getHandlerLevel() { 13 | return null; 14 | } 15 | 16 | @Override 17 | protected Response echo(Request requst) { 18 | return null; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160504BuilderPattern/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160504BuilderPattern; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | CarBuilder builder = new HongQICarBuilder(); 7 | builder.setShape("流体形"); 8 | builder.setAssemble("焊接"); 9 | builder.setColor("黑色"); 10 | 11 | Car car = builder.getCar(); 12 | System.out.println(car.getShape()); 13 | System.out.println(car.getAssemble()); 14 | System.out.println(car.getColor()); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160617ChainOfResponsibility/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160617ChainOfResponsibility; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | Handler local = new LocalHandler(); 7 | Handler first = new FirstHandler(); 8 | Handler second = new SecondHandler(); 9 | 10 | local.setNextHandler(first); 11 | first.setNextHandler(second); 12 | 13 | String ip = local.handlerMessage("www.alibaba.com"); 14 | System.out.println(ip); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032101SingletonPattern/Singleton03.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032101SingletonPattern; 2 | 3 | public class Singleton03 { 4 | 5 | private volatile static Singleton03 singleton = null; 6 | 7 | private Singleton03(){} 8 | 9 | public static Singleton03 getInstance(){ 10 | 11 | if(singleton == null) 12 | synchronized (Singleton03.class) { 13 | 14 | if(singleton == null){ 15 | singleton = new Singleton03(); 16 | } 17 | } 18 | 19 | return singleton; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160504BuilderPattern2/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160504BuilderPattern2; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class MainTest { 7 | 8 | public static void main(String[] args) { 9 | List orderList = new ArrayList(); 10 | orderList.add("startUp"); 11 | orderList.add("run"); 12 | orderList.add("stop"); 13 | 14 | HongQiCar hongQi = new HongQiCar(); 15 | hongQi.setOrder(orderList); 16 | hongQi.templateMethod(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160709MementoPattern/Originator.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160709MementoPattern; 2 | 3 | public class Originator { 4 | 5 | private String state = ""; 6 | 7 | public String getState() { 8 | return this.state; 9 | } 10 | 11 | public void setState(String state) { 12 | this.state = state; 13 | } 14 | 15 | public Memento createMemento() { 16 | 17 | return new Memento(this.state); 18 | } 19 | 20 | public void backState(Memento memento) { 21 | this.setState(memento.getState()); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160525CompositePattern/Branch.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160525CompositePattern; 2 | 3 | import java.util.ArrayList; 4 | 5 | public class Branch extends Corp { 6 | 7 | ArrayList subList = new ArrayList(); 8 | 9 | public Branch(String name, String position, int salary) { 10 | super(name, position, salary); 11 | } 12 | 13 | public void addSubordinate(Corp corp){ 14 | this.subList.add(corp); 15 | } 16 | 17 | public ArrayList getSubordinate(){ 18 | return this.subList; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032009InterfaceSegregationPrinciple/Dog.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032009InterfaceSegregationPrinciple; 2 | 3 | /** 4 | * 5 | * @ProjectName DesignPattern 6 | * @ClassName Dog 7 | * @Description 对于狗来说,他具有的特性是eatFood和run 8 | * @author wy 9 | * @date 2016-4-17 10 | * 11 | */ 12 | public class Dog implements DogInter{ 13 | 14 | @Override 15 | public void eatFood() { 16 | System.out.println("Dog 吃狗粮!"); 17 | } 18 | 19 | @Override 20 | public void run() { 21 | System.out.println("Dog 逮老鼠!"); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/cn/design/pattern2016032103FactoryMethodPattern/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern2016032103FactoryMethodPattern; 2 | 3 | 4 | public class MainTest { 5 | 6 | public static void main(String[] args) { 7 | Factory bydFactory = new BYDFactory(); 8 | Car byd = bydFactory.createCar(); 9 | byd.setCarName("BYD1系"); 10 | byd.setCarColor("Red!"); 11 | 12 | Factory hongQiFactory = new HongQiFactory(); 13 | Car hongQi = hongQiFactory.createCar(); 14 | hongQi.setCarName("HongQi1系"); 15 | hongQi.setCarColor("black!"); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160709MediatorPattern2/SaleMan.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160709MediatorPattern2; 2 | 3 | import java.util.Random; 4 | 5 | public class SaleMan extends AbstractEmployee { 6 | 7 | public SaleMan(){} 8 | 9 | public SaleMan(AbstractMediator mediator) { 10 | super(mediator); 11 | } 12 | 13 | public int getStatus() { 14 | Random random = new Random(); 15 | int num = random.nextInt(120); 16 | return num; 17 | } 18 | 19 | public void sale(Integer num) { 20 | this.mediator.executor("sale", num); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160709MementoPatternMulti/Memento.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160709MementoPatternMulti; 2 | 3 | import java.util.HashMap; 4 | 5 | public class Memento { 6 | 7 | private HashMap stateMap; 8 | 9 | public Memento(HashMap stateMap) { 10 | this.stateMap = stateMap; 11 | } 12 | 13 | public HashMap getStateMap() { 14 | return stateMap; 15 | } 16 | 17 | public void setStateMap(HashMap stateMap) { 18 | this.stateMap = stateMap; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160515AdapterPattern2/UserInfoInto.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160515AdapterPattern2; 2 | 3 | public class UserInfoInto { 4 | 5 | private String userName; 6 | 7 | private String address; 8 | 9 | public String getUserName() { 10 | return userName; 11 | } 12 | 13 | public String getAddress() { 14 | return address; 15 | } 16 | 17 | public void setUserName(String userName) { 18 | this.userName = userName; 19 | } 20 | 21 | public void setAddress(String address) { 22 | this.address = address; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160525CompositePattern/Corp.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160525CompositePattern; 2 | 3 | public abstract class Corp { 4 | 5 | // 姓名 6 | private String name = ""; 7 | // 职位 8 | private String position = ""; 9 | // 薪水 10 | private int salary = 0; 11 | 12 | public Corp(String name, String position, int salary){ 13 | this.name = name; 14 | this.position = position; 15 | this.salary = salary; 16 | } 17 | public String getInfo(){ 18 | return "姓名:" + this.name + "\t职位" + this.position + "\t薪水" + this.salary; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160604FlyWeightPattern/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160604FlyWeightPattern; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | String key = null; 7 | String subject = null; 8 | for(int i = 0; i < 2; i++){ 9 | 10 | subject = "科目" + i; 11 | 12 | for(int j = 0; j < 2; j++){ 13 | key = subject + "考试地点" + j; 14 | SignUpFactory.getExamRoomInfo(key); 15 | } 16 | } 17 | 18 | ExamRoom room = SignUpFactory.getExamRoomInfo("科目1考试地点0"); 19 | System.out.println(room); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160709MementoPattern/MainTest.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160709MementoPattern; 2 | 3 | public class MainTest { 4 | 5 | public static void main(String[] args) { 6 | Originator orig = new Originator(); 7 | orig.setState("很好"); 8 | System.out.println(orig.getState()); 9 | 10 | CareTaker taker = new CareTaker(); 11 | taker.setMemento(orig.createMemento()); 12 | 13 | orig.setState("不好"); 14 | System.out.println(orig.getState()); 15 | 16 | orig.backState(taker.getMemento()); 17 | System.out.println(orig.getState()); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/cn/design/pattern20160625CommandPattern/Man.java: -------------------------------------------------------------------------------- 1 | package cn.design.pattern20160625CommandPattern; 2 | 3 | public class Man implements Person{ 4 | 5 | @Override 6 | public void chopping() { 7 | System.out.println("Man --- chopping"); 8 | } 9 | 10 | @Override 11 | public void makeFood() { 12 | System.out.println("Man --- makeFood"); 13 | } 14 | 15 | @Override 16 | public void feedHorse() { 17 | System.out.println("Man --- feedHorse"); 18 | } 19 | 20 | @Override 21 | public void travelWorld() { 22 | System.out.println("Man --- travelWorld"); 23 | } 24 | 25 | } 26 | --------------------------------------------------------------------------------