实例介绍
0该书是《研磨设计模式》,只有前几张,网上完整版电子书还没有,这是本人收集的最完备的,最多的前几章。 1:本源代码是《研磨设计模式》一书的配套源代码 2:每个模式的示例源代码放在一个单独的文件夹下,以该模式的英文名称命名 3:每个模式下分成多个example,按照书的示例顺序分别命名为example1、example2......以此类推 4:每个模式的示例基本上都是完整的,您可以参考和任意使用 5:基本上每个example里面都有Client文件,可以对本example进行测试
【实例截图】
【核心代码】
研磨设计模式-配套源代码
├── designpattern
│ ├── AdapterLog.log
│ ├── App.xml
│ ├── App2.xml
│ ├── CmdQueue.txt
│ ├── FlowAMemento
│ ├── IOTest.txt
│ ├── InterpreterTest.xml
│ ├── MyEncrypt.txt
│ └── src
│ └── cn
│ └── javass
│ └── dp
│ ├── abstractfactory
│ │ ├── example1
│ │ │ ├── AMDCPU.java
│ │ │ ├── CPUApi.java
│ │ │ ├── CPUFactory.java
│ │ │ ├── Client.java
│ │ │ ├── ComputerEngineer.java
│ │ │ ├── GAMainboard.java
│ │ │ ├── IntelCPU.java
│ │ │ ├── MSIMainboard.java
│ │ │ ├── MainboardApi.java
│ │ │ └── MainboardFactory.java
│ │ ├── example2
│ │ │ ├── AbstractFactory.java
│ │ │ ├── AbstractProductA.java
│ │ │ ├── AbstractProductB.java
│ │ │ ├── Client.java
│ │ │ ├── ConcreteFactory1.java
│ │ │ ├── ConcreteFactory2.java
│ │ │ ├── ProductA1.java
│ │ │ ├── ProductA2.java
│ │ │ ├── ProductB1.java
│ │ │ └── ProductB2.java
│ │ ├── example3
│ │ │ ├── AMDCPU.java
│ │ │ ├── AbstractFactory.java
│ │ │ ├── CPUApi.java
│ │ │ ├── Client.java
│ │ │ ├── ComputerEngineer.java
│ │ │ ├── GAMainboard.java
│ │ │ ├── IntelCPU.java
│ │ │ ├── MSIMainboard.java
│ │ │ ├── MainboardApi.java
│ │ │ ├── Schema1.java
│ │ │ └── Schema2.java
│ │ ├── example4
│ │ │ ├── AMDCPU.java
│ │ │ ├── AbstractFactory.java
│ │ │ ├── CPUApi.java
│ │ │ ├── Client.java
│ │ │ ├── ComputerEngineer.java
│ │ │ ├── GAMainboard.java
│ │ │ ├── HyMemory.java
│ │ │ ├── IntelCPU.java
│ │ │ ├── MSIMainboard.java
│ │ │ ├── MainboardApi.java
│ │ │ ├── MemoryApi.java
│ │ │ ├── Schema1.java
│ │ │ ├── Schema2.java
│ │ │ └── Schema3.java
│ │ └── example5
│ │ ├── BusinessObject.java
│ │ ├── DAOFactory.java
│ │ ├── OrderDetailDAO.java
│ │ ├── OrderMainDAO.java
│ │ ├── RdbDAOFactory.java
│ │ ├── RdbDetailDAOImpl.java
│ │ ├── RdbMainDAOImpl.java
│ │ ├── XmlDAOFactory.java
│ │ ├── XmlDetailDAOImpl.java
│ │ └── XmlMainDAOImpl.java
│ ├── adapter
│ │ ├── example1
│ │ │ ├── Adaptee.java
│ │ │ ├── Adapter.java
│ │ │ ├── Client.java
│ │ │ └── Target.java
│ │ ├── example2
│ │ │ ├── Client.java
│ │ │ ├── LogFileOperate.java
│ │ │ ├── LogFileOperateApi.java
│ │ │ └── LogModel.java
│ │ ├── example3
│ │ │ ├── Adapter.java
│ │ │ ├── Client.java
│ │ │ ├── LogDbOperateApi.java
│ │ │ ├── LogFileOperate.java
│ │ │ ├── LogFileOperateApi.java
│ │ │ └── LogModel.java
│ │ ├── example4
│ │ │ ├── Client.java
│ │ │ ├── LogDbOperate.java
│ │ │ ├── LogDbOperateApi.java
│ │ │ ├── LogFileOperate.java
│ │ │ ├── LogFileOperateApi.java
│ │ │ ├── LogModel.java
│ │ │ └── TwoDirectAdapter.java
│ │ └── example5
│ │ ├── ClassAdapter.java
│ │ ├── Client.java
│ │ ├── LogDbOperateApi.java
│ │ ├── LogFileOperate.java
│ │ ├── LogFileOperateApi.java
│ │ └── LogModel.java
│ ├── bridge
│ │ ├── example1
│ │ │ ├── Client.java
│ │ │ ├── CommonMessageEmail.java
│ │ │ ├── CommonMessageSMS.java
│ │ │ └── Message.java
│ │ ├── example2
│ │ │ ├── Client.java
│ │ │ ├── CommonMessageEmail.java
│ │ │ ├── CommonMessageSMS.java
│ │ │ ├── Message.java
│ │ │ ├── UrgencyMessage.java
│ │ │ ├── UrgencyMessageEmail.java
│ │ │ └── UrgencyMessageSMS.java
│ │ ├── example3
│ │ │ ├── CommonMessageEmail.java
│ │ │ ├── CommonMessageSMS.java
│ │ │ ├── Message.java
│ │ │ ├── SpecialUrgencyMessage.java
│ │ │ ├── SpecialUrgencyMessageEmail.java
│ │ │ ├── SpecialUrgencyMessageSMS.java
│ │ │ ├── UrgencyMessage.java
│ │ │ ├── UrgencyMessageEmail.java
│ │ │ └── UrgencyMessageSMS.java
│ │ ├── example4
│ │ │ ├── CommonMessageEmail.java
│ │ │ ├── CommonMessageMobile.java
│ │ │ ├── CommonMessageSMS.java
│ │ │ ├── Message.java
│ │ │ ├── SpecialUrgencyMessage.java
│ │ │ ├── SpecialUrgencyMessageEmail.java
│ │ │ ├── SpecialUrgencyMessageMobile.java
│ │ │ ├── SpecialUrgencyMessageSMS.java
│ │ │ ├── UrgencyMessage.java
│ │ │ ├── UrgencyMessageEmail.java
│ │ │ ├── UrgencyMessageMobile.java
│ │ │ └── UrgencyMessageSMS.java
│ │ ├── example5
│ │ │ ├── Abstraction.java
│ │ │ ├── ConcreteImplementorA.java
│ │ │ ├── ConcreteImplementorB.java
│ │ │ ├── Implementor.java
│ │ │ └── RefinedAbstraction.java
│ │ ├── example6
│ │ │ ├── AbstractMessage.java
│ │ │ ├── Client.java
│ │ │ ├── CommonMessage.java
│ │ │ ├── MessageEmail.java
│ │ │ ├── MessageImplementor.java
│ │ │ ├── MessageMobile.java
│ │ │ ├── MessageSMS.java
│ │ │ ├── SpecialUrgencyMessage.java
│ │ │ └── UrgencyMessage.java
│ │ ├── example7
│ │ │ ├── AbstractMessage.java
│ │ │ ├── AbstractMessage2.java
│ │ │ ├── AbstractMessage3.java
│ │ │ ├── MessageEmail.java
│ │ │ ├── MessageImplementor.java
│ │ │ ├── MessageMobile.java
│ │ │ └── MessageSMS.java
│ │ └── example8
│ │ └── JDBCTest.java
│ ├── builder
│ │ ├── example1
│ │ │ ├── Client.java
│ │ │ ├── ExportDataModel.java
│ │ │ ├── ExportFooterModel.java
│ │ │ ├── ExportHeaderModel.java
│ │ │ ├── ExportToTxt.java
│ │ │ └── ExportToXml.java
│ │ ├── example2
│ │ │ ├── Builder.java
│ │ │ ├── ConcreteBuilder.java
│ │ │ ├── Director.java
│ │ │ └── Product.java
│ │ ├── example3
│ │ │ ├── Builder.java
│ │ │ ├── Client.java
│ │ │ ├── Director.java
│ │ │ ├── ExportDataModel.java
│ │ │ ├── ExportFooterModel.java
│ │ │ ├── ExportHeaderModel.java
│ │ │ ├── TxtBuilder.java
│ │ │ └── XmlBuilder.java
│ │ ├── example4
│ │ │ ├── Client.java
│ │ │ ├── ConcreteBuilder.java
│ │ │ └── InsuranceContract.java
│ │ ├── example5
│ │ │ ├── Client.java
│ │ │ ├── ConcreteBuilder.java
│ │ │ └── InsuranceContract.java
│ │ └── example6
│ │ ├── Client.java
│ │ └── InsuranceContract.java
│ ├── chainofresponsibility
│ │ ├── example1
│ │ │ ├── Client.java
│ │ │ └── FeeRequest.java
│ │ ├── example2
│ │ │ ├── Client.java
│ │ │ ├── ConcreteHandler1.java
│ │ │ ├── ConcreteHandler2.java
│ │ │ └── Handler.java
│ │ ├── example3
│ │ │ ├── Client.java
│ │ │ ├── DepManager.java
│ │ │ ├── GeneralManager.java
│ │ │ ├── Handler.java
│ │ │ └── ProjectManager.java
│ │ ├── example4
│ │ │ ├── Client.java
│ │ │ ├── DepManager.java
│ │ │ ├── GeneralManager.java
│ │ │ ├── Handler.java
│ │ │ └── ProjectManager.java
│ │ ├── example5
│ │ │ ├── Client.java
│ │ │ ├── DepManager.java
│ │ │ ├── DepManager2.java
│ │ │ ├── FeeRequestModel.java
│ │ │ ├── GeneralManager.java
│ │ │ ├── GeneralManager2.java
│ │ │ ├── Handler.java
│ │ │ ├── PreFeeRequestModel.java
│ │ │ ├── ProjectManager.java
│ │ │ ├── ProjectManager2.java
│ │ │ └── RequestModel.java
│ │ └── example6
│ │ ├── Client.java
│ │ ├── GoodsSaleEbo.java
│ │ ├── SaleDataCheck.java
│ │ ├── SaleHandler.java
│ │ ├── SaleLogicCheck.java
│ │ ├── SaleMgr.java
│ │ ├── SaleModel.java
│ │ └── SaleSecurityCheck.java
│ ├── command
│ │ ├── example1
│ │ │ ├── Client.java
│ │ │ ├── Command.java
│ │ │ ├── ConcreteCommand.java
│ │ │ ├── Invoker.java
│ │ │ └── Receiver.java
│ │ ├── example2
│ │ │ ├── Box.java
│ │ │ ├── Client.java
│ │ │ ├── Command.java
│ │ │ ├── GigaMainBoard.java
│ │ │ ├── MainBoardApi.java
│ │ │ ├── MsiMainBoard.java
│ │ │ └── OpenCommand.java
│ │ ├── example3
│ │ │ ├── Box.java
│ │ │ ├── Client.java
│ │ │ ├── Command.java
│ │ │ ├── GigaMainBoard.java
│ │ │ ├── MainBoardApi.java
│ │ │ ├── MsiMainBoard.java
│ │ │ ├── OpenCommand.java
│ │ │ └── ResetCommand.java
│ │ ├── example4
│ │ │ ├── AddCommand.java
│ │ │ ├── Calculator.java
│ │ │ ├── Calculator2.java
│ │ │ ├── Client.java
│ │ │ ├── Command.java
│ │ │ ├── Operation.java
│ │ │ ├── OperationApi.java
│ │ │ └── SubstractCommand.java
│ │ ├── example5
│ │ │ ├── ChopCommand.java
│ │ │ ├── Client.java
│ │ │ ├── Command.java
│ │ │ ├── CookApi.java
│ │ │ ├── CoolCook.java
│ │ │ ├── DuckCommand.java
│ │ │ ├── HotCook.java
│ │ │ ├── MenuCommand.java
│ │ │ ├── PorkCommand.java
│ │ │ └── Waiter.java
│ │ ├── example6
│ │ │ ├── ChopCommand.java
│ │ │ ├── Client.java
│ │ │ ├── Command.java
│ │ │ ├── CommandQueue.java
│ │ │ ├── CookApi.java
│ │ │ ├── CookManager.java
│ │ │ ├── DuckCommand.java
│ │ │ ├── HotCook.java
│ │ │ ├── MenuCommand.java
│ │ │ └── Waiter.java
│ │ ├── example7
│ │ │ ├── ChopCommand.java
│ │ │ ├── Client.java
│ │ │ ├── Command.java
│ │ │ ├── CommandQueue.java
│ │ │ ├── CookApi.java
│ │ │ ├── CookManager.java
│ │ │ ├── DuckCommand.java
│ │ │ ├── FileOpeUtil.java
│ │ │ ├── HotCook.java
│ │ │ ├── MenuCommand.java
│ │ │ └── Waiter.java
│ │ ├── example8
│ │ │ ├── Client.java
│ │ │ ├── Command.java
│ │ │ ├── Invoker.java
│ │ │ └── PrintService.java
│ │ └── example9
│ │ ├── Client.java
│ │ ├── Command.java
│ │ └── Invoker.java
│ ├── composite
│ │ ├── example1
│ │ │ ├── Client.java
│ │ │ ├── Composite.java
│ │ │ └── Leaf.java
│ │ ├── example2
│ │ │ ├── Client.java
│ │ │ ├── Component.java
│ │ │ ├── Composite.java
│ │ │ └── Leaf.java
│ │ ├── example3
│ │ │ ├── Client.java
│ │ │ ├── Component.java
│ │ │ ├── Composite.java
│ │ │ └── Leaf.java
│ │ ├── example4
│ │ │ └── RecursiveTest.java
│ │ ├── example5
│ │ │ ├── Client.java
│ │ │ ├── Component.java
│ │ │ ├── Composite.java
│ │ │ └── Leaf.java
│ │ ├── example6
│ │ │ ├── Client.java
│ │ │ ├── Component.java
│ │ │ ├── Composite.java
│ │ │ └── Leaf.java
│ │ └── example7
│ │ ├── Client.java
│ │ ├── Component.java
│ │ ├── Composite.java
│ │ └── Leaf.java
│ ├── decorator
│ │ ├── example1
│ │ │ ├── Client.java
│ │ │ ├── Prize.java
│ │ │ └── TempDB.java
│ │ ├── example2
│ │ │ ├── A.java
│ │ │ ├── B.java
│ │ │ ├── C1.java
│ │ │ ├── C2.java
│ │ │ ├── C3.java
│ │ │ └── C4.java
│ │ ├── example3
│ │ │ ├── Component.java
│ │ │ ├── ConcreteComponent.java
│ │ │ ├── ConcreteDecoratorA.java
│ │ │ ├── ConcreteDecoratorB.java
│ │ │ └── Decorator.java
│ │ ├── example4
│ │ │ ├── Client.java
│ │ │ ├── Component.java
│ │ │ ├── ConcreteComponent.java
│ │ │ ├── Decorator.java
│ │ │ ├── GroupPrizeDecorator.java
│ │ │ ├── MonthPrizeDecorator.java
│ │ │ ├── SumPrizeDecorator.java
│ │ │ └── TempDB.java
│ │ ├── example5
│ │ │ ├── Client.java
│ │ │ ├── EncryptOutputStream.java
│ │ │ ├── EncryptOutputStream2.java
│ │ │ └── IOTest.java
│ │ └── example6
│ │ ├── CheckDecorator.java
│ │ ├── Client.java
│ │ ├── Decorator.java
│ │ ├── GoodsSaleEbi.java
│ │ ├── GoodsSaleEbo.java
│ │ ├── LogDecorator.java
│ │ └── SaleModel.java
│ ├── facade
│ │ ├── example1
│ │ │ ├── Business.java
│ │ │ ├── Client.java
│ │ │ ├── ConfigManager.java
│ │ │ ├── ConfigModel.java
│ │ │ ├── DAO.java
│ │ │ └── Presentation.java
│ │ ├── example2
│ │ │ ├── AModuleApi.java
│ │ │ ├── AModuleImpl.java
│ │ │ ├── BModuleApi.java
│ │ │ ├── BModuleImpl.java
│ │ │ ├── CModuleApi.java
│ │ │ ├── CModuleImpl.java
│ │ │ ├── Client.java
│ │ │ └── Facade.java
│ │ ├── example3
│ │ │ ├── Business.java
│ │ │ ├── Client.java
│ │ │ ├── ConfigManager.java
│ │ │ ├── ConfigModel.java
│ │ │ ├── DAO.java
│ │ │ ├── Facade.java
│ │ │ └── Presentation.java
│ │ └── example4
│ │ ├── AModuleApi.java
│ │ ├── BModuleApi.java
│ │ ├── CModuleApi.java
│ │ └── FacadeApi.java
│ ├── factorymethod
│ │ ├── example1
│ │ │ ├── Client.java
│ │ │ ├── ExportDB.java
│ │ │ ├── ExportFileApi.java
│ │ │ ├── ExportOperate.java
│ │ │ └── ExportTxtFile.java
│ │ ├── example2
│ │ │ ├── ConcreteCreator.java
│ │ │ ├── ConcreteProduct.java
│ │ │ ├── Creator.java
│ │ │ └── Product.java
│ │ ├── example3
│ │ │ ├── Client.java
│ │ │ ├── ExportDB.java
│ │ │ ├── ExportDBOperate.java
│ │ │ ├── ExportFileApi.java
│ │ │ ├── ExportOperate.java
│ │ │ ├── ExportTxtFile.java
│ │ │ └── ExportTxtFileOperate.java
│ │ ├── example4
│ │ │ ├── Creator.java
│ │ │ └── Product.java
│ │ ├── example5
│ │ │ ├── ConcreteProduct.java
│ │ │ ├── Creator.java
│ │ │ ├── Product.java
│ │ │ ├── Product1.java
│ │ │ └── Product2.java
│ │ ├── example6
│ │ │ ├── A.java
│ │ │ ├── A1.java
│ │ │ ├── A2.java
│ │ │ ├── C.java
│ │ │ ├── C1.java
│ │ │ └── C2.java
│ │ └── example7
│ │ ├── Client.java
│ │ ├── ExportDB.java
│ │ ├── ExportFileApi.java
│ │ ├── ExportOperate.java
│ │ ├── ExportOperate2.java
│ │ ├── ExportTxtFile.java
│ │ └── ExportXml.java
│ ├── flyweight
│ │ ├── example1
│ │ │ ├── AuthorizationModel.java
│ │ │ ├── Client.java
│ │ │ ├── SecurityMgr.java
│ │ │ └── TestDB.java
│ │ ├── example2
│ │ │ ├── Client.java
│ │ │ ├── ConcreteFlyweight.java
│ │ │ ├── Flyweight.java
│ │ │ ├── FlyweightFactory.java
│ │ │ └── UnsharedConcreteFlyweight.java
│ │ ├── example3
│ │ │ ├── AuthorizationFlyweight.java
│ │ │ ├── Client.java
│ │ │ ├── Flyweight.java
│ │ │ ├── FlyweightFactory.java
│ │ │ ├── SecurityMgr.java
│ │ │ └── TestDB.java
│ │ ├── example4
│ │ │ ├── AuthorizationFlyweight.java
│ │ │ ├── Client.java
│ │ │ ├── Flyweight.java
│ │ │ ├── FlyweightFactory.java
│ │ │ ├── SecurityMgr.java
│ │ │ ├── TestDB.java
│ │ │ └── UnsharedConcreteFlyweight.java
│ │ └── example5
│ │ ├── AuthorizationFlyweight.java
│ │ ├── CacheConfModel.java
│ │ ├── Client.java
│ │ ├── Flyweight.java
│ │ ├── FlyweightFactory.java
│ │ ├── SecurityMgr.java
│ │ ├── TestDB.java
│ │ └── UnsharedConcreteFlyweight.java
│ ├── interpreter
│ │ ├── example1
│ │ │ ├── App.xml
│ │ │ ├── App2.xml
│ │ │ └── ReadAppXml.java
│ │ ├── example2
│ │ │ ├── AbstractExpression.java
│ │ │ ├── Client.java
│ │ │ ├── Context.java
│ │ │ ├── NonterminalExpression.java
│ │ │ └── TerminalExpression.java
│ │ ├── example3
│ │ │ ├── Client.java
│ │ │ ├── Context.java
│ │ │ ├── ElementExpression.java
│ │ │ ├── ElementTerminalExpression.java
│ │ │ ├── PropertyTerminalExpression.java
│ │ │ ├── ReadXmlExpression.java
│ │ │ └── XmlUtil.java
│ │ ├── example4
│ │ │ ├── Client.java
│ │ │ ├── Context.java
│ │ │ ├── ElementExpression.java
│ │ │ ├── ElementTerminalExpression.java
│ │ │ ├── ElementsExpression.java
│ │ │ ├── ElementsTerminalExpression.java
│ │ │ ├── PropertysTerminalExpression.java
│ │ │ ├── ReadXmlExpression.java
│ │ │ └── XmlUtil.java
│ │ └── example5
│ │ ├── Client.java
│ │ ├── Context.java
│ │ ├── ElementExpression.java
│ │ ├── ElementTerminalExpression.java
│ │ ├── ElementsExpression.java
│ │ ├── ElementsTerminalExpression.java
│ │ ├── Parser.java
│ │ ├── ParserModel.java
│ │ ├── PropertyTerminalExpression.java
│ │ ├── PropertysTerminalExpression.java
│ │ ├── ReadXmlExpression.java
│ │ └── XmlUtil.java
│ ├── iterator
│ │ ├── example1
│ │ │ ├── Aggregate.java
│ │ │ ├── Client.java
│ │ │ ├── ConcreteAggregate.java
│ │ │ ├── ConcreteIterator.java
│ │ │ └── Iterator.java
│ │ ├── example2
│ │ │ ├── Client.java
│ │ │ ├── PayManager.java
│ │ │ ├── PayModel.java
│ │ │ └── SalaryManager.java
│ │ ├── example3
│ │ │ ├── Aggregate.java
│ │ │ ├── ArrayIteratorImpl.java
│ │ │ ├── Client.java
│ │ │ ├── CollectionIteratorImpl.java
│ │ │ ├── Iterator.java
│ │ │ ├── PayManager.java
│ │ │ ├── PayModel.java
│ │ │ └── SalaryManager.java
│ │ ├── example4
│ │ │ ├── Client.java
│ │ │ ├── PayManager.java
│ │ │ ├── PayModel.java
│ │ │ └── SalaryManager.java
│ │ ├── example5
│ │ │ ├── Aggregate.java
│ │ │ ├── ArrayIteratorImpl.java
│ │ │ ├── Client.java
│ │ │ ├── PayManager.java
│ │ │ ├── PayModel.java
│ │ │ └── SalaryManager.java
│ │ ├── example6
│ │ │ ├── Aggregate.java
│ │ │ ├── ArrayIteratorImpl.java
│ │ │ ├── Client.java
│ │ │ ├── PayManager.java
│ │ │ ├── PayModel.java
│ │ │ └── SalaryManager.java
│ │ ├── example7
│ │ │ ├── ArrayIteratorImpl.java
│ │ │ ├── Client.java
│ │ │ ├── Iterator.java
│ │ │ ├── PayModel.java
│ │ │ └── SalaryManager.java
│ │ ├── example8
│ │ │ ├── AggregationIterator.java
│ │ │ ├── ArrayIteratorImpl.java
│ │ │ ├── Client.java
│ │ │ ├── PayModel.java
│ │ │ └── SalaryManager.java
│ │ └── example9
│ │ ├── AggregationIterator.java
│ │ ├── ArrayIteratorImpl.java
│ │ ├── Client.java
│ │ ├── PayModel.java
│ │ └── SalaryManager.java
│ ├── mediator
│ │ ├── example1
│ │ │ ├── Colleague.java
│ │ │ ├── ConcreteColleagueA.java
│ │ │ ├── ConcreteColleagueB.java
│ │ │ ├── ConcreteMediator.java
│ │ │ └── Mediator.java
│ │ ├── example2
│ │ │ ├── CDDriver.java
│ │ │ ├── CPU.java
│ │ │ ├── Client.java
│ │ │ ├── Colleague.java
│ │ │ ├── Mediator.java
│ │ │ ├── MotherBoard.java
│ │ │ ├── SoundCard.java
│ │ │ └── VideoCard.java
│ │ └── example3
│ │ ├── Client.java
│ │ ├── Dep.java
│ │ ├── DepUserMediatorImpl.java
│ │ ├── DepUserModel.java
│ │ └── User.java
│ ├── memento
│ │ ├── example1
│ │ │ ├── Client.java
│ │ │ └── FlowAMock.java
│ │ ├── example2
│ │ │ ├── Caretaker.java
│ │ │ ├── Memento.java
│ │ │ └── Originator.java
│ │ ├── example3
│ │ │ ├── Client.java
│ │ │ ├── FlowAMementoCareTaker.java
│ │ │ ├── FlowAMementoFileCareTaker.java
│ │ │ ├── FlowAMock.java
│ │ │ ├── FlowAMockMemento.java
│ │ │ └── FlowAMockPrototype.java
│ │ └── example4
│ │ ├── AbstractCommand.java
│ │ ├── AddCommand.java
│ │ ├── Calculator.java
│ │ ├── Client.java
│ │ ├── Command.java
│ │ ├── Memento.java
│ │ ├── Operation.java
│ │ ├── OperationApi.java
│ │ └── SubstractCommand.java
│ ├── observer
│ │ ├── example1
│ │ │ ├── ConcreteObserver.java
│ │ │ ├── ConcreteSubject.java
│ │ │ ├── Observer.java
│ │ │ └── Subject.java
│ │ ├── example2
│ │ │ ├── Client.java
│ │ │ ├── NewsPaper.java
│ │ │ ├── Observer.java
│ │ │ ├── Reader.java
│ │ │ └── Subject.java
│ │ ├── example3
│ │ │ ├── Client.java
│ │ │ ├── NewsPaper.java
│ │ │ ├── Observer.java
│ │ │ ├── Reader.java
│ │ │ └── Subject.java
│ │ ├── example4
│ │ │ ├── Client.java
│ │ │ ├── NewsPaper.java
│ │ │ └── Reader.java
│ │ └── example5
│ │ ├── Client.java
│ │ ├── Watcher.java
│ │ ├── WatcherObserver.java
│ │ ├── WaterQuality.java
│ │ └── WaterQualitySubject.java
│ ├── prototype
│ │ ├── example1
│ │ │ ├── EnterpriseOrder.java
│ │ │ ├── OrderApi.java
│ │ │ ├── OrderBusiness.java
│ │ │ ├── OrderClient.java
│ │ │ └── PersonalOrder.java
│ │ ├── example2
│ │ │ ├── Client.java
│ │ │ ├── ConcretePrototype1.java
│ │ │ ├── ConcretePrototype2.java
│ │ │ └── Prototype.java
│ │ ├── example3
│ │ │ ├── EnterpriseOrder.java
│ │ │ ├── OrderApi.java
│ │ │ ├── OrderBusiness.java
│ │ │ ├── OrderClient.java
│ │ │ └── PersonalOrder.java
│ │ ├── example4
│ │ │ ├── Client.java
│ │ │ ├── EnterpriseOrder.java
│ │ │ ├── OrderApi.java
│ │ │ └── PersonalOrder.java
│ │ ├── example5
│ │ │ ├── Client.java
│ │ │ ├── OrderApi.java
│ │ │ └── PersonalOrder.java
│ │ ├── example6
│ │ │ ├── Client.java
│ │ │ ├── OrderApi.java
│ │ │ ├── PersonalOrder.java
│ │ │ ├── Product.java
│ │ │ └── ProductPrototype.java
│ │ ├── example7
│ │ │ ├── Client.java
│ │ │ ├── OrderApi.java
│ │ │ ├── PersonalOrder.java
│ │ │ └── Product.java
│ │ └── example8
│ │ ├── Client.java
│ │ ├── ConcretePrototype1.java
│ │ ├── ConcretePrototype2.java
│ │ ├── Prototype.java
│ │ └── PrototypeManager.java
│ ├── proxy
│ │ ├── example1
│ │ │ ├── Client.java
│ │ │ ├── UserManager.java
│ │ │ └── UserModel.java
│ │ ├── example2
│ │ │ ├── Proxy.java
│ │ │ ├── RealSubject.java
│ │ │ └── Subject.java
│ │ ├── example3
│ │ │ ├── Client.java
│ │ │ ├── Proxy.java
│ │ │ ├── UserManager.java
│ │ │ ├── UserModel.java
│ │ │ └── UserModelApi.java
│ │ ├── example4
│ │ │ ├── Client.java
│ │ │ ├── Order.java
│ │ │ ├── OrderApi.java
│ │ │ └── OrderProxy.java
│ │ ├── example5
│ │ │ ├── Client.java
│ │ │ ├── DynamicProxy.java
│ │ │ ├── Order.java
│ │ │ └── OrderApi.java
│ │ └── example6
│ │ ├── Client.java
│ │ ├── Order.java
│ │ └── OrderProxy.java
│ ├── simplefactory
│ │ ├── example1
│ │ │ ├── Api.java
│ │ │ ├── Client.java
│ │ │ └── Impl.java
│ │ ├── example2
│ │ │ ├── Api.java
│ │ │ ├── Client.java
│ │ │ ├── Factory.java
│ │ │ ├── ImplA.java
│ │ │ └── ImplB.java
│ │ ├── example3
│ │ │ ├── Api.java
│ │ │ ├── Client.java
│ │ │ ├── Factory.java
│ │ │ └── Impl.java
│ │ ├── example4
│ │ │ ├── Api.java
│ │ │ ├── Client.java
│ │ │ ├── Factory.java
│ │ │ ├── Impl.java
│ │ │ └── Impl2.java
│ │ └── example5
│ │ ├── Api.java
│ │ ├── Client.java
│ │ ├── Factory.java
│ │ ├── FactoryTest.properties
│ │ ├── Impl.java
│ │ └── Impl2.java
│ ├── singleton
│ │ ├── example1
│ │ │ ├── AppConfig.java
│ │ │ ├── AppConfig.properties
│ │ │ └── Client.java
│ │ ├── example10
│ │ │ └── Singleton.java
│ │ ├── example11
│ │ │ └── Singleton.java
│ │ ├── example12
│ │ │ └── Singleton.java
│ │ ├── example2
│ │ │ └── Singleton.java
│ │ ├── example3
│ │ │ └── Singleton.java
│ │ ├── example4
│ │ │ ├── AppConfig.java
│ │ │ ├── AppConfig.properties
│ │ │ └── Client.java
│ │ ├── example5
│ │ │ └── Singleton.java
│ │ ├── example6
│ │ │ └── Singleton.java
│ │ ├── example7
│ │ │ └── JavaCache.java
│ │ ├── example8
│ │ │ └── Singleton.java
│ │ └── example9
│ │ └── OneExtend.java
│ ├── state
│ │ ├── example1
│ │ │ ├── Client.java
│ │ │ └── VoteManager.java
│ │ ├── example2
│ │ │ ├── ConcreteStateA.java
│ │ │ ├── ConcreteStateB.java
│ │ │ ├── Context.java
│ │ │ └── State.java
│ │ ├── example3
│ │ │ ├── BlackVoteState.java
│ │ │ ├── BlackWarnVoteState.java
│ │ │ ├── Client.java
│ │ │ ├── NormalVoteState.java
│ │ │ ├── NormalVoteState2.java
│ │ │ ├── RepeatVoteState.java
│ │ │ ├── SpiteVoteState.java
│ │ │ ├── VoteManager.java
│ │ │ ├── VoteManager2.java
│ │ │ └── VoteState.java
│ │ ├── example4
│ │ │ ├── BlackVoteState.java
│ │ │ ├── BlackWarnVoteState.java
│ │ │ ├── Client.java
│ │ │ ├── NormalVoteState.java
│ │ │ ├── RepeatVoteState.java
│ │ │ ├── SpiteVoteState.java
│ │ │ ├── VoteManager.java
│ │ │ └── VoteState.java
│ │ ├── example5
│ │ │ ├── BlackVoteState.java
│ │ │ ├── NormalVoteState.java
│ │ │ ├── RepeatVoteState.java
│ │ │ ├── SpiteVoteState.java
│ │ │ ├── VoteManager.java
│ │ │ └── VoteState.java
│ │ ├── example6
│ │ │ ├── Client.java
│ │ │ ├── Client2.java
│ │ │ └── TestDB.java
│ │ ├── example7
│ │ │ ├── AuditOverState.java
│ │ │ ├── DepManagerState.java
│ │ │ ├── LeaveRequestContext.java
│ │ │ ├── LeaveRequestModel.java
│ │ │ ├── LeaveRequestState.java
│ │ │ ├── ProjectManagerState.java
│ │ │ ├── State.java
│ │ │ └── StateMachine.java
│ │ └── example8
│ │ ├── AuditOverState.java
│ │ ├── Client.java
│ │ ├── DepManagerState.java
│ │ ├── LeaveRequestContext.java
│ │ ├── LeaveRequestModel.java
│ │ ├── LeaveRequestState.java
│ │ ├── ProjectManagerState.java
│ │ ├── State.java
│ │ └── StateMachine.java
│ ├── strategy
│ │ ├── example1
│ │ │ └── Price.java
│ │ ├── example2
│ │ │ └── Price.java
│ │ ├── example3
│ │ │ ├── ConcreteStrategyA.java
│ │ │ ├── ConcreteStrategyB.java
│ │ │ ├── ConcreteStrategyC.java
│ │ │ ├── Context.java
│ │ │ └── Strategy.java
│ │ ├── example4
│ │ │ ├── Client.java
│ │ │ ├── Client2.java
│ │ │ ├── CooperateCustomerStrategy.java
│ │ │ ├── LargeCustomerStrategy.java
│ │ │ ├── NormalCustomerStrategy.java
│ │ │ ├── OldCustomerStrategy.java
│ │ │ ├── Price.java
│ │ │ └── Strategy.java
│ │ ├── example5
│ │ │ ├── Card.java
│ │ │ ├── Card2.java
│ │ │ ├── Client.java
│ │ │ ├── DollarCash.java
│ │ │ ├── PaymentContext.java
│ │ │ ├── PaymentContext2.java
│ │ │ ├── PaymentStrategy.java
│ │ │ └── RMBCash.java
│ │ ├── example6
│ │ │ ├── Client.java
│ │ │ ├── DbLog.java
│ │ │ ├── FileLog.java
│ │ │ ├── LogContext.java
│ │ │ └── LogStrategy.java
│ │ ├── example7
│ │ │ ├── AbstractClass.java
│ │ │ ├── ConcreteStrategyA.java
│ │ │ ├── ConcreteStrategyB.java
│ │ │ ├── ConcreteStrategyC.java
│ │ │ ├── Context.java
│ │ │ └── Strategy.java
│ │ ├── example8
│ │ │ ├── Client.java
│ │ │ ├── DbLog.java
│ │ │ ├── FileLog.java
│ │ │ ├── LogContext.java
│ │ │ ├── LogStrategy.java
│ │ │ └── LogStrategyTemplate.java
│ │ └── example9
│ │ └── OneClass.java
│ ├── templatemethod
│ │ ├── example1
│ │ │ ├── LoginModel.java
│ │ │ ├── NormalLogin.java
│ │ │ └── UserModel.java
│ │ ├── example2
│ │ │ ├── LoginModel.java
│ │ │ ├── WorkerLogin.java
│ │ │ └── WorkerModel.java
│ │ ├── example3
│ │ │ ├── AbstractClass.java
│ │ │ └── ConcreteClass.java
│ │ ├── example4
│ │ │ ├── Client.java
│ │ │ ├── LoginModel.java
│ │ │ ├── LoginTemplate.java
│ │ │ ├── NormalLogin.java
│ │ │ ├── NormalLogin2.java
│ │ │ ├── NormalLoginModel.java
│ │ │ └── WorkerLogin.java
│ │ ├── example5
│ │ │ └── AbstractTemplate.java
│ │ ├── example6
│ │ │ ├── Client.java
│ │ │ ├── JDBCTemplate.java
│ │ │ ├── JDBCTest.java
│ │ │ ├── UpdateDBCallBack.java
│ │ │ ├── UserJDBC.java
│ │ │ ├── UserModel.java
│ │ │ └── UserQueryModel.java
│ │ ├── example7
│ │ │ ├── Client.java
│ │ │ ├── LoginCallback.java
│ │ │ ├── LoginModel.java
│ │ │ └── LoginTemplate.java
│ │ └── example8
│ │ ├── Client.java
│ │ └── UserModel.java
│ └── visitor
│ ├── example1
│ │ ├── Customer.java
│ │ ├── EnterpriseCustomer.java
│ │ └── PersonalCustomer.java
│ ├── example2
│ │ ├── Client.java
│ │ ├── Customer.java
│ │ ├── EnterpriseCustomer.java
│ │ └── PersonalCustomer.java
│ ├── example3
│ │ ├── Client.java
│ │ ├── ConcreteElementA.java
│ │ ├── ConcreteElementB.java
│ │ ├── ConcreteVisitor1.java
│ │ ├── ConcreteVisitor2.java
│ │ ├── Element.java
│ │ ├── ObjectStructure.java
│ │ └── Visitor.java
│ ├── example4
│ │ ├── Client.java
│ │ ├── Customer.java
│ │ ├── EnterpriseCustomer.java
│ │ ├── ObjectStructure.java
│ │ ├── PersonalCustomer.java
│ │ ├── PredilectionAnalyzeVisitor.java
│ │ ├── ServiceRequestVisitor.java
│ │ ├── Visitor.java
│ │ └── WorthAnalyzeVisitor.java
│ ├── example5
│ │ ├── Client.java
│ │ ├── Component.java
│ │ ├── Composite.java
│ │ ├── Leaf.java
│ │ ├── ObjectStructure.java
│ │ ├── PrintNameVisitor.java
│ │ └── Visitor.java
│ └── example6
│ ├── Client.java
│ ├── Component.java
│ ├── Composite.java
│ ├── Leaf.java
│ ├── ObjectStructure.java
│ ├── PrintNameVisitor.java
│ ├── PrintStructVisitor.java
│ └── Visitor.java
├── 说明.txt
├── 新建文本文档 (2).txt
└── 研磨设计模式_博文集.pdf
185 directories, 821 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论