├── .gitattributes ├── Chapter01_Introduction2DesignPatterns └── README.md ├── Chapter02_ObjectOrientedDesignPrinciples ├── README.md └── img │ └── DIP.png ├── Chapter03_TemplateMethod ├── README.md ├── after │ ├── Application.java │ ├── Lib.java │ └── Main.java ├── before │ ├── Application.java │ ├── Lib.java │ └── Main.java └── img │ ├── template_method1.png │ ├── template_method2.png │ ├── template_method3.png │ └── template_method4.png ├── Chapter04_Strategy ├── README.md ├── after │ ├── Context │ │ └── SalesOrder.java │ ├── Parameters.java │ ├── Strategy │ │ ├── CNTax.java │ │ ├── DETax.java │ │ ├── FRTax.java │ │ ├── TaxStrategy.java │ │ └── USTax.java │ └── TaxStrategyFactory.java ├── before │ ├── Main.java │ ├── SalesOrder.java │ └── TaxBase.java └── img │ ├── after.png │ └── strategy_1.png ├── Chapter05_Observer ├── README.md ├── after │ ├── DisplayElement.java │ ├── DisplayPane │ │ ├── CurrentConditionsDisplay.java │ │ ├── ForecastDisplay.java │ │ ├── HeatIndexDisplay.java │ │ └── StatisticsDisplay.java │ ├── Observer.java │ ├── Subject.java │ ├── WeatherData.java │ ├── WeatherStation.java │ └── WeatherStationHeatIndex.java ├── before │ ├── DisplayPane │ │ ├── CurrentConditionsDisplay.java │ │ ├── ForecastDisplay.java │ │ └── StatisticsDisplay.java │ ├── Pane.java │ └── WeatherData.java └── img │ ├── 2020-10-17-18-59-36.png │ ├── 2020-10-17-19-00-46.png │ ├── 2020-10-17-19-03-40.png │ ├── observer_2.png │ ├── observer_structure.png │ └── observer_structure3.png ├── Chapter06_Decorator ├── README.md ├── UML │ ├── after.mdj │ ├── before.mdj │ └── middle.mdj ├── after │ ├── Main.java │ └── Stream.java ├── before │ ├── Main.java │ └── Stream.java ├── img │ ├── 2020-10-18-10-45-17.png │ ├── after.png │ ├── before_uml.png │ ├── java_io_decorator.png │ ├── middle_decorator.png │ └── structure.png └── middle │ ├── Main.java │ └── Stream.java ├── Chapter07_Bridge ├── README.md ├── UML │ └── after.mdj ├── after │ ├── Messager.java │ ├── MessagerImp.java │ ├── MessagerLite.java │ ├── MessagerPerfect.java │ ├── MobileMessagerImp.java │ └── PCMessagerImp.java ├── before │ ├── Main.java │ ├── Messager.java │ ├── MobileMessagerBase.java │ ├── MobileMessagerLite.java │ ├── MobileMessagerPerfect.java │ ├── PCMessagerBase.java │ ├── PCMessagerLite.java │ └── PCMessagerPerfect.java └── img │ ├── after_class.png │ ├── after_uml.png │ ├── class_before.png │ └── structure.png ├── Chapter08_Factory Method ├── README.md ├── UML │ └── after.mdj ├── after │ ├── ISplitter.java │ ├── MainForm.java │ └── SplitterFactory.java ├── before │ ├── ISplitter.java │ └── MainForm.java └── img │ ├── 2020-10-22-12-20-42.png │ ├── 2020-10-22-12-23-03.png │ ├── 2020-10-22-12-24-33.png │ ├── 2020-10-22-12-32-03.png │ ├── after_uml.png │ └── structure.png ├── Chapter09_Abstract Factory ├── README.md ├── UML │ ├── after.mdj │ └── middle.mdj ├── after │ ├── EmployeeDAO.java │ ├── IDBCommand.java │ ├── IDBConnection.java │ ├── IDBFactory.java │ ├── IDataReader.java │ ├── Main.java │ ├── Oracle │ │ ├── OracleCommand.java │ │ ├── OracleConnection.java │ │ └── OracleDataReader.java │ ├── OracleDBFactory.java │ ├── SqlDBFactory.java │ └── SqlServer │ │ ├── SqlCommand.java │ │ ├── SqlConnection.java │ │ └── SqlDataReader.java ├── before │ └── EmployeeDAO.java ├── img │ ├── after_class.png │ ├── after_uml.png │ ├── middle_class.png │ ├── middle_uml.png │ └── structure.png ├── middle │ ├── EmployeeDAO.java │ ├── IDBCommand.java │ ├── IDBCommandFactory.java │ ├── IDBConnection.java │ ├── IDBConnectionFactory.java │ ├── IDataReader.java │ ├── IDataReaderFactory.java │ ├── Oracle │ │ ├── OracleCommand.java │ │ ├── OracleConnection.java │ │ └── OracleDataReader.java │ └── SqlServer │ │ ├── SqlCommand.java │ │ ├── SqlConnection.java │ │ └── SqlDataReader.java └── others │ ├── EmployeeDO.java │ ├── README.md │ ├── SqlCommand.java │ ├── SqlConnection.java │ └── SqlDataReader.java ├── Chapter10_Prototype ├── README.md ├── after │ ├── ISplitter.java │ └── MainForm.java ├── before │ ├── ISplitter.java │ └── MainForm.java └── img │ ├── after_uml.png │ └── structure.png ├── Chapter11_Builder ├── README.md ├── UML │ └── after.mdj ├── after │ ├── Builder.java │ ├── Client.java │ ├── Director.java │ ├── House.java │ ├── HouseBuilder.java │ └── HouseType.java └── img │ ├── 2020-10-20-20-28-05.png │ ├── 2020-10-20-20-32-18.png │ ├── after_uml.png │ ├── before_faults.png │ └── structure.png ├── Chapter12_Singleton ├── README.md ├── after │ └── Main.java └── img │ ├── 2020-10-21-11-15-12.png │ ├── 2020-10-21-11-18-37.png │ ├── 2020-10-21-11-19-43.png │ ├── 2020-10-21-11-20-40.png │ ├── 2020-10-21-11-23-33.png │ ├── 2020-10-21-11-26-01.png │ └── structure.png ├── Chapter13_Flyweight ├── FontExample │ └── after │ │ ├── Character.java │ │ ├── Client.java │ │ ├── Font.java │ │ └── FontFactory.java ├── README.md ├── TreeExample │ └── after │ │ ├── Forest.java │ │ ├── Tree.java │ │ ├── TreeFactory.java │ │ └── TreeType.java └── img │ ├── 2020-10-21-16-22-52.png │ ├── 2020-10-21-16-24-35.png │ └── structure.png ├── Chapter14_Facade ├── README.md ├── after │ ├── AudioMixer.java │ ├── BitrateReader.java │ ├── Codec.java │ ├── CodecFactory.java │ ├── MPEG4CompressionCodec.java │ ├── OggCompressionCodec.java │ ├── VideoConversionFacade.java │ └── VideoFile.java └── img │ ├── 2020-10-22-09-50-41.png │ ├── 2020-10-22-10-11-05.png │ ├── 2020-10-22-10-34-47.png │ ├── 2020-10-22-10-44-14.png │ └── structure.png ├── Chapter15_Proxy ├── Example1 │ ├── after │ │ ├── ClientApp.java │ │ ├── ISubject.java │ │ ├── RealSubject.java │ │ └── SubjectProxy.java │ └── before │ │ ├── ClientApp.java │ │ ├── ISubject.java │ │ └── RealSubject.java ├── Example2 │ └── after │ │ ├── Application.java │ │ ├── CachedTVClass.java │ │ ├── TVManager.java │ │ ├── ThirdPartyTVClass.java │ │ ├── ThirdPartyTVLib.java │ │ └── Video.java ├── README.md └── img │ ├── 2020-10-22-17-37-36.png │ ├── 2020-10-22-17-38-02.png │ └── structure.png ├── Chapter16_Adapter ├── README.md ├── after │ ├── Adapter.java │ ├── IAdaptee.java │ ├── ITarget.java │ ├── JsonAnalysis.java │ └── ohters │ │ ├── JSONData.java │ │ └── XMLData.java └── img │ ├── 2020-10-22-22-05-51.png │ ├── 2020-10-22-22-14-20.png │ ├── after_uml.png │ └── structure.png ├── Chapter17_Mediator ├── README.md ├── after │ ├── AuthenticationDialog.java │ ├── Button.java │ ├── Checkbox.java │ ├── Client.java │ ├── Component.java │ ├── Mediator.java │ └── Textbox.java └── img │ ├── 2020-10-24-10-02-35.png │ ├── 2020-10-24-10-15-47.png │ ├── 2020-10-24-10-18-36.png │ ├── 2020-10-24-10-23-40.png │ ├── structure.png │ └── structure2.png ├── Chapter18_State ├── README.md ├── after │ ├── Application.java │ ├── LockedState.java │ ├── Player.java │ ├── PlayingState.java │ ├── ReadyState.java │ ├── State.java │ └── UI.java └── img │ ├── 2020-10-24-16-56-49.png │ ├── 2020-10-24-17-20-26.png │ ├── UML.png │ └── structure.png ├── Chapter19_Memento ├── README.md ├── example1 │ ├── Command.java │ ├── Memento.java │ ├── Originator.java │ └── UserInfo.java ├── example2 │ └── after │ │ ├── Demo.java │ │ ├── commands │ │ ├── ColorCommand.java │ │ ├── Command.java │ │ └── MoveCommand.java │ │ ├── editor │ │ ├── Canvas.java │ │ └── Editor.java │ │ ├── history │ │ ├── History.java │ │ └── Memento.java │ │ └── shape │ │ ├── BaseShape.java │ │ ├── Circle.java │ │ ├── CompoundShape.java │ │ ├── Dot.java │ │ ├── Rectangle.java │ │ └── Shape.java └── img │ ├── memento1.png │ ├── memento2.png │ ├── memento3.png │ └── structure.png ├── Chapter20_Composite ├── README.md ├── after │ ├── Client.java │ ├── Component.java │ ├── Composite.java │ └── Leaf.java ├── before │ ├── Client.java │ ├── Component.java │ ├── Composite.java │ └── Leaf.java └── img │ ├── structure.png │ └── structure2.png └── README.md /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/.gitattributes -------------------------------------------------------------------------------- /Chapter01_Introduction2DesignPatterns/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter01_Introduction2DesignPatterns/README.md -------------------------------------------------------------------------------- /Chapter02_ObjectOrientedDesignPrinciples/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter02_ObjectOrientedDesignPrinciples/README.md -------------------------------------------------------------------------------- /Chapter02_ObjectOrientedDesignPrinciples/img/DIP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter02_ObjectOrientedDesignPrinciples/img/DIP.png -------------------------------------------------------------------------------- /Chapter03_TemplateMethod/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter03_TemplateMethod/README.md -------------------------------------------------------------------------------- /Chapter03_TemplateMethod/after/Application.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter03_TemplateMethod/after/Application.java -------------------------------------------------------------------------------- /Chapter03_TemplateMethod/after/Lib.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter03_TemplateMethod/after/Lib.java -------------------------------------------------------------------------------- /Chapter03_TemplateMethod/after/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter03_TemplateMethod/after/Main.java -------------------------------------------------------------------------------- /Chapter03_TemplateMethod/before/Application.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter03_TemplateMethod/before/Application.java -------------------------------------------------------------------------------- /Chapter03_TemplateMethod/before/Lib.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter03_TemplateMethod/before/Lib.java -------------------------------------------------------------------------------- /Chapter03_TemplateMethod/before/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter03_TemplateMethod/before/Main.java -------------------------------------------------------------------------------- /Chapter03_TemplateMethod/img/template_method1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter03_TemplateMethod/img/template_method1.png -------------------------------------------------------------------------------- /Chapter03_TemplateMethod/img/template_method2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter03_TemplateMethod/img/template_method2.png -------------------------------------------------------------------------------- /Chapter03_TemplateMethod/img/template_method3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter03_TemplateMethod/img/template_method3.png -------------------------------------------------------------------------------- /Chapter03_TemplateMethod/img/template_method4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter03_TemplateMethod/img/template_method4.png -------------------------------------------------------------------------------- /Chapter04_Strategy/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter04_Strategy/README.md -------------------------------------------------------------------------------- /Chapter04_Strategy/after/Context/SalesOrder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter04_Strategy/after/Context/SalesOrder.java -------------------------------------------------------------------------------- /Chapter04_Strategy/after/Parameters.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter04_Strategy/after/Parameters.java -------------------------------------------------------------------------------- /Chapter04_Strategy/after/Strategy/CNTax.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter04_Strategy/after/Strategy/CNTax.java -------------------------------------------------------------------------------- /Chapter04_Strategy/after/Strategy/DETax.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter04_Strategy/after/Strategy/DETax.java -------------------------------------------------------------------------------- /Chapter04_Strategy/after/Strategy/FRTax.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter04_Strategy/after/Strategy/FRTax.java -------------------------------------------------------------------------------- /Chapter04_Strategy/after/Strategy/TaxStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter04_Strategy/after/Strategy/TaxStrategy.java -------------------------------------------------------------------------------- /Chapter04_Strategy/after/Strategy/USTax.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter04_Strategy/after/Strategy/USTax.java -------------------------------------------------------------------------------- /Chapter04_Strategy/after/TaxStrategyFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter04_Strategy/after/TaxStrategyFactory.java -------------------------------------------------------------------------------- /Chapter04_Strategy/before/Main.java: -------------------------------------------------------------------------------- 1 | package Strategy.before; 2 | 3 | /** 4 | * 如果有个新需求,需要增加计算法国Tax。此时需要修改 TaxBase 和 SalesOrder 5 | * 违背了 “开闭原则” 6 | */ 7 | public class Main { 8 | // ... 9 | } 10 | 11 | 12 | -------------------------------------------------------------------------------- /Chapter04_Strategy/before/SalesOrder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter04_Strategy/before/SalesOrder.java -------------------------------------------------------------------------------- /Chapter04_Strategy/before/TaxBase.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter04_Strategy/before/TaxBase.java -------------------------------------------------------------------------------- /Chapter04_Strategy/img/after.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter04_Strategy/img/after.png -------------------------------------------------------------------------------- /Chapter04_Strategy/img/strategy_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter04_Strategy/img/strategy_1.png -------------------------------------------------------------------------------- /Chapter05_Observer/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/README.md -------------------------------------------------------------------------------- /Chapter05_Observer/after/DisplayElement.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/after/DisplayElement.java -------------------------------------------------------------------------------- /Chapter05_Observer/after/DisplayPane/CurrentConditionsDisplay.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/after/DisplayPane/CurrentConditionsDisplay.java -------------------------------------------------------------------------------- /Chapter05_Observer/after/DisplayPane/ForecastDisplay.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/after/DisplayPane/ForecastDisplay.java -------------------------------------------------------------------------------- /Chapter05_Observer/after/DisplayPane/HeatIndexDisplay.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/after/DisplayPane/HeatIndexDisplay.java -------------------------------------------------------------------------------- /Chapter05_Observer/after/DisplayPane/StatisticsDisplay.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/after/DisplayPane/StatisticsDisplay.java -------------------------------------------------------------------------------- /Chapter05_Observer/after/Observer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/after/Observer.java -------------------------------------------------------------------------------- /Chapter05_Observer/after/Subject.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/after/Subject.java -------------------------------------------------------------------------------- /Chapter05_Observer/after/WeatherData.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/after/WeatherData.java -------------------------------------------------------------------------------- /Chapter05_Observer/after/WeatherStation.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/after/WeatherStation.java -------------------------------------------------------------------------------- /Chapter05_Observer/after/WeatherStationHeatIndex.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/after/WeatherStationHeatIndex.java -------------------------------------------------------------------------------- /Chapter05_Observer/before/DisplayPane/CurrentConditionsDisplay.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/before/DisplayPane/CurrentConditionsDisplay.java -------------------------------------------------------------------------------- /Chapter05_Observer/before/DisplayPane/ForecastDisplay.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/before/DisplayPane/ForecastDisplay.java -------------------------------------------------------------------------------- /Chapter05_Observer/before/DisplayPane/StatisticsDisplay.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/before/DisplayPane/StatisticsDisplay.java -------------------------------------------------------------------------------- /Chapter05_Observer/before/Pane.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/before/Pane.java -------------------------------------------------------------------------------- /Chapter05_Observer/before/WeatherData.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/before/WeatherData.java -------------------------------------------------------------------------------- /Chapter05_Observer/img/2020-10-17-18-59-36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/img/2020-10-17-18-59-36.png -------------------------------------------------------------------------------- /Chapter05_Observer/img/2020-10-17-19-00-46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/img/2020-10-17-19-00-46.png -------------------------------------------------------------------------------- /Chapter05_Observer/img/2020-10-17-19-03-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/img/2020-10-17-19-03-40.png -------------------------------------------------------------------------------- /Chapter05_Observer/img/observer_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/img/observer_2.png -------------------------------------------------------------------------------- /Chapter05_Observer/img/observer_structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/img/observer_structure.png -------------------------------------------------------------------------------- /Chapter05_Observer/img/observer_structure3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter05_Observer/img/observer_structure3.png -------------------------------------------------------------------------------- /Chapter06_Decorator/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter06_Decorator/README.md -------------------------------------------------------------------------------- /Chapter06_Decorator/UML/after.mdj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter06_Decorator/UML/after.mdj -------------------------------------------------------------------------------- /Chapter06_Decorator/UML/before.mdj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter06_Decorator/UML/before.mdj -------------------------------------------------------------------------------- /Chapter06_Decorator/UML/middle.mdj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter06_Decorator/UML/middle.mdj -------------------------------------------------------------------------------- /Chapter06_Decorator/after/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter06_Decorator/after/Main.java -------------------------------------------------------------------------------- /Chapter06_Decorator/after/Stream.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter06_Decorator/after/Stream.java -------------------------------------------------------------------------------- /Chapter06_Decorator/before/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter06_Decorator/before/Main.java -------------------------------------------------------------------------------- /Chapter06_Decorator/before/Stream.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter06_Decorator/before/Stream.java -------------------------------------------------------------------------------- /Chapter06_Decorator/img/2020-10-18-10-45-17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter06_Decorator/img/2020-10-18-10-45-17.png -------------------------------------------------------------------------------- /Chapter06_Decorator/img/after.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter06_Decorator/img/after.png -------------------------------------------------------------------------------- /Chapter06_Decorator/img/before_uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter06_Decorator/img/before_uml.png -------------------------------------------------------------------------------- /Chapter06_Decorator/img/java_io_decorator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter06_Decorator/img/java_io_decorator.png -------------------------------------------------------------------------------- /Chapter06_Decorator/img/middle_decorator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter06_Decorator/img/middle_decorator.png -------------------------------------------------------------------------------- /Chapter06_Decorator/img/structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter06_Decorator/img/structure.png -------------------------------------------------------------------------------- /Chapter06_Decorator/middle/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter06_Decorator/middle/Main.java -------------------------------------------------------------------------------- /Chapter06_Decorator/middle/Stream.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter06_Decorator/middle/Stream.java -------------------------------------------------------------------------------- /Chapter07_Bridge/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/README.md -------------------------------------------------------------------------------- /Chapter07_Bridge/UML/after.mdj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/UML/after.mdj -------------------------------------------------------------------------------- /Chapter07_Bridge/after/Messager.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/after/Messager.java -------------------------------------------------------------------------------- /Chapter07_Bridge/after/MessagerImp.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/after/MessagerImp.java -------------------------------------------------------------------------------- /Chapter07_Bridge/after/MessagerLite.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/after/MessagerLite.java -------------------------------------------------------------------------------- /Chapter07_Bridge/after/MessagerPerfect.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/after/MessagerPerfect.java -------------------------------------------------------------------------------- /Chapter07_Bridge/after/MobileMessagerImp.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/after/MobileMessagerImp.java -------------------------------------------------------------------------------- /Chapter07_Bridge/after/PCMessagerImp.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/after/PCMessagerImp.java -------------------------------------------------------------------------------- /Chapter07_Bridge/before/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/before/Main.java -------------------------------------------------------------------------------- /Chapter07_Bridge/before/Messager.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/before/Messager.java -------------------------------------------------------------------------------- /Chapter07_Bridge/before/MobileMessagerBase.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/before/MobileMessagerBase.java -------------------------------------------------------------------------------- /Chapter07_Bridge/before/MobileMessagerLite.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/before/MobileMessagerLite.java -------------------------------------------------------------------------------- /Chapter07_Bridge/before/MobileMessagerPerfect.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/before/MobileMessagerPerfect.java -------------------------------------------------------------------------------- /Chapter07_Bridge/before/PCMessagerBase.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/before/PCMessagerBase.java -------------------------------------------------------------------------------- /Chapter07_Bridge/before/PCMessagerLite.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/before/PCMessagerLite.java -------------------------------------------------------------------------------- /Chapter07_Bridge/before/PCMessagerPerfect.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/before/PCMessagerPerfect.java -------------------------------------------------------------------------------- /Chapter07_Bridge/img/after_class.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/img/after_class.png -------------------------------------------------------------------------------- /Chapter07_Bridge/img/after_uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/img/after_uml.png -------------------------------------------------------------------------------- /Chapter07_Bridge/img/class_before.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/img/class_before.png -------------------------------------------------------------------------------- /Chapter07_Bridge/img/structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter07_Bridge/img/structure.png -------------------------------------------------------------------------------- /Chapter08_Factory Method/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter08_Factory Method/README.md -------------------------------------------------------------------------------- /Chapter08_Factory Method/UML/after.mdj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter08_Factory Method/UML/after.mdj -------------------------------------------------------------------------------- /Chapter08_Factory Method/after/ISplitter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter08_Factory Method/after/ISplitter.java -------------------------------------------------------------------------------- /Chapter08_Factory Method/after/MainForm.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter08_Factory Method/after/MainForm.java -------------------------------------------------------------------------------- /Chapter08_Factory Method/after/SplitterFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter08_Factory Method/after/SplitterFactory.java -------------------------------------------------------------------------------- /Chapter08_Factory Method/before/ISplitter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter08_Factory Method/before/ISplitter.java -------------------------------------------------------------------------------- /Chapter08_Factory Method/before/MainForm.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter08_Factory Method/before/MainForm.java -------------------------------------------------------------------------------- /Chapter08_Factory Method/img/2020-10-22-12-20-42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter08_Factory Method/img/2020-10-22-12-20-42.png -------------------------------------------------------------------------------- /Chapter08_Factory Method/img/2020-10-22-12-23-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter08_Factory Method/img/2020-10-22-12-23-03.png -------------------------------------------------------------------------------- /Chapter08_Factory Method/img/2020-10-22-12-24-33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter08_Factory Method/img/2020-10-22-12-24-33.png -------------------------------------------------------------------------------- /Chapter08_Factory Method/img/2020-10-22-12-32-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter08_Factory Method/img/2020-10-22-12-32-03.png -------------------------------------------------------------------------------- /Chapter08_Factory Method/img/after_uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter08_Factory Method/img/after_uml.png -------------------------------------------------------------------------------- /Chapter08_Factory Method/img/structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter08_Factory Method/img/structure.png -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/README.md -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/UML/after.mdj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/UML/after.mdj -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/UML/middle.mdj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/UML/middle.mdj -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/after/EmployeeDAO.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/after/EmployeeDAO.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/after/IDBCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/after/IDBCommand.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/after/IDBConnection.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/after/IDBConnection.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/after/IDBFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/after/IDBFactory.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/after/IDataReader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/after/IDataReader.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/after/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/after/Main.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/after/Oracle/OracleCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/after/Oracle/OracleCommand.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/after/Oracle/OracleConnection.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/after/Oracle/OracleConnection.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/after/Oracle/OracleDataReader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/after/Oracle/OracleDataReader.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/after/OracleDBFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/after/OracleDBFactory.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/after/SqlDBFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/after/SqlDBFactory.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/after/SqlServer/SqlCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/after/SqlServer/SqlCommand.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/after/SqlServer/SqlConnection.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/after/SqlServer/SqlConnection.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/after/SqlServer/SqlDataReader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/after/SqlServer/SqlDataReader.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/before/EmployeeDAO.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/before/EmployeeDAO.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/img/after_class.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/img/after_class.png -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/img/after_uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/img/after_uml.png -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/img/middle_class.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/img/middle_class.png -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/img/middle_uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/img/middle_uml.png -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/img/structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/img/structure.png -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/middle/EmployeeDAO.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/middle/EmployeeDAO.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/middle/IDBCommand.java: -------------------------------------------------------------------------------- 1 | package AbstractFactory.middle; 2 | 3 | public interface IDBCommand { 4 | } 5 | -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/middle/IDBCommandFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/middle/IDBCommandFactory.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/middle/IDBConnection.java: -------------------------------------------------------------------------------- 1 | package AbstractFactory.middle; 2 | 3 | public interface IDBConnection { 4 | } 5 | -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/middle/IDBConnectionFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/middle/IDBConnectionFactory.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/middle/IDataReader.java: -------------------------------------------------------------------------------- 1 | package AbstractFactory.middle; 2 | 3 | public interface IDataReader { 4 | } 5 | -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/middle/IDataReaderFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/middle/IDataReaderFactory.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/middle/Oracle/OracleCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/middle/Oracle/OracleCommand.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/middle/Oracle/OracleConnection.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/middle/Oracle/OracleConnection.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/middle/Oracle/OracleDataReader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/middle/Oracle/OracleDataReader.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/middle/SqlServer/SqlCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/middle/SqlServer/SqlCommand.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/middle/SqlServer/SqlConnection.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/middle/SqlServer/SqlConnection.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/middle/SqlServer/SqlDataReader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/middle/SqlServer/SqlDataReader.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/others/EmployeeDO.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter09_Abstract Factory/others/EmployeeDO.java -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/others/README.md: -------------------------------------------------------------------------------- 1 | #### Note 2 | 3 | 这里是一些和理解设计模式原理不太相关的类,为了程序完整性,简单定义了一些 -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/others/SqlCommand.java: -------------------------------------------------------------------------------- 1 | package AbstractFactory.others; 2 | 3 | public class SqlCommand { 4 | } 5 | -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/others/SqlConnection.java: -------------------------------------------------------------------------------- 1 | package AbstractFactory.others; 2 | 3 | public class SqlConnection { 4 | // ...数据库连接类 5 | } 6 | -------------------------------------------------------------------------------- /Chapter09_Abstract Factory/others/SqlDataReader.java: -------------------------------------------------------------------------------- 1 | package AbstractFactory.others; 2 | 3 | public class SqlDataReader { 4 | // ... 其他操作 5 | } 6 | -------------------------------------------------------------------------------- /Chapter10_Prototype/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter10_Prototype/README.md -------------------------------------------------------------------------------- /Chapter10_Prototype/after/ISplitter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter10_Prototype/after/ISplitter.java -------------------------------------------------------------------------------- /Chapter10_Prototype/after/MainForm.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter10_Prototype/after/MainForm.java -------------------------------------------------------------------------------- /Chapter10_Prototype/before/ISplitter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter10_Prototype/before/ISplitter.java -------------------------------------------------------------------------------- /Chapter10_Prototype/before/MainForm.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter10_Prototype/before/MainForm.java -------------------------------------------------------------------------------- /Chapter10_Prototype/img/after_uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter10_Prototype/img/after_uml.png -------------------------------------------------------------------------------- /Chapter10_Prototype/img/structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter10_Prototype/img/structure.png -------------------------------------------------------------------------------- /Chapter11_Builder/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter11_Builder/README.md -------------------------------------------------------------------------------- /Chapter11_Builder/UML/after.mdj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter11_Builder/UML/after.mdj -------------------------------------------------------------------------------- /Chapter11_Builder/after/Builder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter11_Builder/after/Builder.java -------------------------------------------------------------------------------- /Chapter11_Builder/after/Client.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter11_Builder/after/Client.java -------------------------------------------------------------------------------- /Chapter11_Builder/after/Director.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter11_Builder/after/Director.java -------------------------------------------------------------------------------- /Chapter11_Builder/after/House.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter11_Builder/after/House.java -------------------------------------------------------------------------------- /Chapter11_Builder/after/HouseBuilder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter11_Builder/after/HouseBuilder.java -------------------------------------------------------------------------------- /Chapter11_Builder/after/HouseType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter11_Builder/after/HouseType.java -------------------------------------------------------------------------------- /Chapter11_Builder/img/2020-10-20-20-28-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter11_Builder/img/2020-10-20-20-28-05.png -------------------------------------------------------------------------------- /Chapter11_Builder/img/2020-10-20-20-32-18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter11_Builder/img/2020-10-20-20-32-18.png -------------------------------------------------------------------------------- /Chapter11_Builder/img/after_uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter11_Builder/img/after_uml.png -------------------------------------------------------------------------------- /Chapter11_Builder/img/before_faults.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter11_Builder/img/before_faults.png -------------------------------------------------------------------------------- /Chapter11_Builder/img/structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter11_Builder/img/structure.png -------------------------------------------------------------------------------- /Chapter12_Singleton/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter12_Singleton/README.md -------------------------------------------------------------------------------- /Chapter12_Singleton/after/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter12_Singleton/after/Main.java -------------------------------------------------------------------------------- /Chapter12_Singleton/img/2020-10-21-11-15-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter12_Singleton/img/2020-10-21-11-15-12.png -------------------------------------------------------------------------------- /Chapter12_Singleton/img/2020-10-21-11-18-37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter12_Singleton/img/2020-10-21-11-18-37.png -------------------------------------------------------------------------------- /Chapter12_Singleton/img/2020-10-21-11-19-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter12_Singleton/img/2020-10-21-11-19-43.png -------------------------------------------------------------------------------- /Chapter12_Singleton/img/2020-10-21-11-20-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter12_Singleton/img/2020-10-21-11-20-40.png -------------------------------------------------------------------------------- /Chapter12_Singleton/img/2020-10-21-11-23-33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter12_Singleton/img/2020-10-21-11-23-33.png -------------------------------------------------------------------------------- /Chapter12_Singleton/img/2020-10-21-11-26-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter12_Singleton/img/2020-10-21-11-26-01.png -------------------------------------------------------------------------------- /Chapter12_Singleton/img/structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter12_Singleton/img/structure.png -------------------------------------------------------------------------------- /Chapter13_Flyweight/FontExample/after/Character.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter13_Flyweight/FontExample/after/Character.java -------------------------------------------------------------------------------- /Chapter13_Flyweight/FontExample/after/Client.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter13_Flyweight/FontExample/after/Client.java -------------------------------------------------------------------------------- /Chapter13_Flyweight/FontExample/after/Font.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter13_Flyweight/FontExample/after/Font.java -------------------------------------------------------------------------------- /Chapter13_Flyweight/FontExample/after/FontFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter13_Flyweight/FontExample/after/FontFactory.java -------------------------------------------------------------------------------- /Chapter13_Flyweight/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter13_Flyweight/README.md -------------------------------------------------------------------------------- /Chapter13_Flyweight/TreeExample/after/Forest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter13_Flyweight/TreeExample/after/Forest.java -------------------------------------------------------------------------------- /Chapter13_Flyweight/TreeExample/after/Tree.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter13_Flyweight/TreeExample/after/Tree.java -------------------------------------------------------------------------------- /Chapter13_Flyweight/TreeExample/after/TreeFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter13_Flyweight/TreeExample/after/TreeFactory.java -------------------------------------------------------------------------------- /Chapter13_Flyweight/TreeExample/after/TreeType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter13_Flyweight/TreeExample/after/TreeType.java -------------------------------------------------------------------------------- /Chapter13_Flyweight/img/2020-10-21-16-22-52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter13_Flyweight/img/2020-10-21-16-22-52.png -------------------------------------------------------------------------------- /Chapter13_Flyweight/img/2020-10-21-16-24-35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter13_Flyweight/img/2020-10-21-16-24-35.png -------------------------------------------------------------------------------- /Chapter13_Flyweight/img/structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter13_Flyweight/img/structure.png -------------------------------------------------------------------------------- /Chapter14_Facade/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter14_Facade/README.md -------------------------------------------------------------------------------- /Chapter14_Facade/after/AudioMixer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter14_Facade/after/AudioMixer.java -------------------------------------------------------------------------------- /Chapter14_Facade/after/BitrateReader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter14_Facade/after/BitrateReader.java -------------------------------------------------------------------------------- /Chapter14_Facade/after/Codec.java: -------------------------------------------------------------------------------- 1 | package Facade.after; 2 | 3 | public interface Codec { 4 | } 5 | -------------------------------------------------------------------------------- /Chapter14_Facade/after/CodecFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter14_Facade/after/CodecFactory.java -------------------------------------------------------------------------------- /Chapter14_Facade/after/MPEG4CompressionCodec.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter14_Facade/after/MPEG4CompressionCodec.java -------------------------------------------------------------------------------- /Chapter14_Facade/after/OggCompressionCodec.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter14_Facade/after/OggCompressionCodec.java -------------------------------------------------------------------------------- /Chapter14_Facade/after/VideoConversionFacade.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter14_Facade/after/VideoConversionFacade.java -------------------------------------------------------------------------------- /Chapter14_Facade/after/VideoFile.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter14_Facade/after/VideoFile.java -------------------------------------------------------------------------------- /Chapter14_Facade/img/2020-10-22-09-50-41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter14_Facade/img/2020-10-22-09-50-41.png -------------------------------------------------------------------------------- /Chapter14_Facade/img/2020-10-22-10-11-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter14_Facade/img/2020-10-22-10-11-05.png -------------------------------------------------------------------------------- /Chapter14_Facade/img/2020-10-22-10-34-47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter14_Facade/img/2020-10-22-10-34-47.png -------------------------------------------------------------------------------- /Chapter14_Facade/img/2020-10-22-10-44-14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter14_Facade/img/2020-10-22-10-44-14.png -------------------------------------------------------------------------------- /Chapter14_Facade/img/structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter14_Facade/img/structure.png -------------------------------------------------------------------------------- /Chapter15_Proxy/Example1/after/ClientApp.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter15_Proxy/Example1/after/ClientApp.java -------------------------------------------------------------------------------- /Chapter15_Proxy/Example1/after/ISubject.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter15_Proxy/Example1/after/ISubject.java -------------------------------------------------------------------------------- /Chapter15_Proxy/Example1/after/RealSubject.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter15_Proxy/Example1/after/RealSubject.java -------------------------------------------------------------------------------- /Chapter15_Proxy/Example1/after/SubjectProxy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter15_Proxy/Example1/after/SubjectProxy.java -------------------------------------------------------------------------------- /Chapter15_Proxy/Example1/before/ClientApp.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter15_Proxy/Example1/before/ClientApp.java -------------------------------------------------------------------------------- /Chapter15_Proxy/Example1/before/ISubject.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter15_Proxy/Example1/before/ISubject.java -------------------------------------------------------------------------------- /Chapter15_Proxy/Example1/before/RealSubject.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter15_Proxy/Example1/before/RealSubject.java -------------------------------------------------------------------------------- /Chapter15_Proxy/Example2/after/Application.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter15_Proxy/Example2/after/Application.java -------------------------------------------------------------------------------- /Chapter15_Proxy/Example2/after/CachedTVClass.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter15_Proxy/Example2/after/CachedTVClass.java -------------------------------------------------------------------------------- /Chapter15_Proxy/Example2/after/TVManager.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter15_Proxy/Example2/after/TVManager.java -------------------------------------------------------------------------------- /Chapter15_Proxy/Example2/after/ThirdPartyTVClass.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter15_Proxy/Example2/after/ThirdPartyTVClass.java -------------------------------------------------------------------------------- /Chapter15_Proxy/Example2/after/ThirdPartyTVLib.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter15_Proxy/Example2/after/ThirdPartyTVLib.java -------------------------------------------------------------------------------- /Chapter15_Proxy/Example2/after/Video.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter15_Proxy/Example2/after/Video.java -------------------------------------------------------------------------------- /Chapter15_Proxy/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter15_Proxy/README.md -------------------------------------------------------------------------------- /Chapter15_Proxy/img/2020-10-22-17-37-36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter15_Proxy/img/2020-10-22-17-37-36.png -------------------------------------------------------------------------------- /Chapter15_Proxy/img/2020-10-22-17-38-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter15_Proxy/img/2020-10-22-17-38-02.png -------------------------------------------------------------------------------- /Chapter15_Proxy/img/structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter15_Proxy/img/structure.png -------------------------------------------------------------------------------- /Chapter16_Adapter/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter16_Adapter/README.md -------------------------------------------------------------------------------- /Chapter16_Adapter/after/Adapter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter16_Adapter/after/Adapter.java -------------------------------------------------------------------------------- /Chapter16_Adapter/after/IAdaptee.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter16_Adapter/after/IAdaptee.java -------------------------------------------------------------------------------- /Chapter16_Adapter/after/ITarget.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter16_Adapter/after/ITarget.java -------------------------------------------------------------------------------- /Chapter16_Adapter/after/JsonAnalysis.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter16_Adapter/after/JsonAnalysis.java -------------------------------------------------------------------------------- /Chapter16_Adapter/after/ohters/JSONData.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter16_Adapter/after/ohters/JSONData.java -------------------------------------------------------------------------------- /Chapter16_Adapter/after/ohters/XMLData.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter16_Adapter/after/ohters/XMLData.java -------------------------------------------------------------------------------- /Chapter16_Adapter/img/2020-10-22-22-05-51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter16_Adapter/img/2020-10-22-22-05-51.png -------------------------------------------------------------------------------- /Chapter16_Adapter/img/2020-10-22-22-14-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter16_Adapter/img/2020-10-22-22-14-20.png -------------------------------------------------------------------------------- /Chapter16_Adapter/img/after_uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter16_Adapter/img/after_uml.png -------------------------------------------------------------------------------- /Chapter16_Adapter/img/structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter16_Adapter/img/structure.png -------------------------------------------------------------------------------- /Chapter17_Mediator/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter17_Mediator/README.md -------------------------------------------------------------------------------- /Chapter17_Mediator/after/AuthenticationDialog.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter17_Mediator/after/AuthenticationDialog.java -------------------------------------------------------------------------------- /Chapter17_Mediator/after/Button.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter17_Mediator/after/Button.java -------------------------------------------------------------------------------- /Chapter17_Mediator/after/Checkbox.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter17_Mediator/after/Checkbox.java -------------------------------------------------------------------------------- /Chapter17_Mediator/after/Client.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter17_Mediator/after/Client.java -------------------------------------------------------------------------------- /Chapter17_Mediator/after/Component.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter17_Mediator/after/Component.java -------------------------------------------------------------------------------- /Chapter17_Mediator/after/Mediator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter17_Mediator/after/Mediator.java -------------------------------------------------------------------------------- /Chapter17_Mediator/after/Textbox.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter17_Mediator/after/Textbox.java -------------------------------------------------------------------------------- /Chapter17_Mediator/img/2020-10-24-10-02-35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter17_Mediator/img/2020-10-24-10-02-35.png -------------------------------------------------------------------------------- /Chapter17_Mediator/img/2020-10-24-10-15-47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter17_Mediator/img/2020-10-24-10-15-47.png -------------------------------------------------------------------------------- /Chapter17_Mediator/img/2020-10-24-10-18-36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter17_Mediator/img/2020-10-24-10-18-36.png -------------------------------------------------------------------------------- /Chapter17_Mediator/img/2020-10-24-10-23-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter17_Mediator/img/2020-10-24-10-23-40.png -------------------------------------------------------------------------------- /Chapter17_Mediator/img/structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter17_Mediator/img/structure.png -------------------------------------------------------------------------------- /Chapter17_Mediator/img/structure2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter17_Mediator/img/structure2.png -------------------------------------------------------------------------------- /Chapter18_State/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter18_State/README.md -------------------------------------------------------------------------------- /Chapter18_State/after/Application.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter18_State/after/Application.java -------------------------------------------------------------------------------- /Chapter18_State/after/LockedState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter18_State/after/LockedState.java -------------------------------------------------------------------------------- /Chapter18_State/after/Player.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter18_State/after/Player.java -------------------------------------------------------------------------------- /Chapter18_State/after/PlayingState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter18_State/after/PlayingState.java -------------------------------------------------------------------------------- /Chapter18_State/after/ReadyState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter18_State/after/ReadyState.java -------------------------------------------------------------------------------- /Chapter18_State/after/State.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter18_State/after/State.java -------------------------------------------------------------------------------- /Chapter18_State/after/UI.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter18_State/after/UI.java -------------------------------------------------------------------------------- /Chapter18_State/img/2020-10-24-16-56-49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter18_State/img/2020-10-24-16-56-49.png -------------------------------------------------------------------------------- /Chapter18_State/img/2020-10-24-17-20-26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter18_State/img/2020-10-24-17-20-26.png -------------------------------------------------------------------------------- /Chapter18_State/img/UML.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter18_State/img/UML.png -------------------------------------------------------------------------------- /Chapter18_State/img/structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter18_State/img/structure.png -------------------------------------------------------------------------------- /Chapter19_Memento/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/README.md -------------------------------------------------------------------------------- /Chapter19_Memento/example1/Command.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/example1/Command.java -------------------------------------------------------------------------------- /Chapter19_Memento/example1/Memento.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/example1/Memento.java -------------------------------------------------------------------------------- /Chapter19_Memento/example1/Originator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/example1/Originator.java -------------------------------------------------------------------------------- /Chapter19_Memento/example1/UserInfo.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/example1/UserInfo.java -------------------------------------------------------------------------------- /Chapter19_Memento/example2/after/Demo.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/example2/after/Demo.java -------------------------------------------------------------------------------- /Chapter19_Memento/example2/after/commands/ColorCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/example2/after/commands/ColorCommand.java -------------------------------------------------------------------------------- /Chapter19_Memento/example2/after/commands/Command.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/example2/after/commands/Command.java -------------------------------------------------------------------------------- /Chapter19_Memento/example2/after/commands/MoveCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/example2/after/commands/MoveCommand.java -------------------------------------------------------------------------------- /Chapter19_Memento/example2/after/editor/Canvas.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/example2/after/editor/Canvas.java -------------------------------------------------------------------------------- /Chapter19_Memento/example2/after/editor/Editor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/example2/after/editor/Editor.java -------------------------------------------------------------------------------- /Chapter19_Memento/example2/after/history/History.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/example2/after/history/History.java -------------------------------------------------------------------------------- /Chapter19_Memento/example2/after/history/Memento.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/example2/after/history/Memento.java -------------------------------------------------------------------------------- /Chapter19_Memento/example2/after/shape/BaseShape.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/example2/after/shape/BaseShape.java -------------------------------------------------------------------------------- /Chapter19_Memento/example2/after/shape/Circle.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/example2/after/shape/Circle.java -------------------------------------------------------------------------------- /Chapter19_Memento/example2/after/shape/CompoundShape.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/example2/after/shape/CompoundShape.java -------------------------------------------------------------------------------- /Chapter19_Memento/example2/after/shape/Dot.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/example2/after/shape/Dot.java -------------------------------------------------------------------------------- /Chapter19_Memento/example2/after/shape/Rectangle.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/example2/after/shape/Rectangle.java -------------------------------------------------------------------------------- /Chapter19_Memento/example2/after/shape/Shape.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/example2/after/shape/Shape.java -------------------------------------------------------------------------------- /Chapter19_Memento/img/memento1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/img/memento1.png -------------------------------------------------------------------------------- /Chapter19_Memento/img/memento2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/img/memento2.png -------------------------------------------------------------------------------- /Chapter19_Memento/img/memento3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/img/memento3.png -------------------------------------------------------------------------------- /Chapter19_Memento/img/structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter19_Memento/img/structure.png -------------------------------------------------------------------------------- /Chapter20_Composite/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter20_Composite/README.md -------------------------------------------------------------------------------- /Chapter20_Composite/after/Client.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter20_Composite/after/Client.java -------------------------------------------------------------------------------- /Chapter20_Composite/after/Component.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter20_Composite/after/Component.java -------------------------------------------------------------------------------- /Chapter20_Composite/after/Composite.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter20_Composite/after/Composite.java -------------------------------------------------------------------------------- /Chapter20_Composite/after/Leaf.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter20_Composite/after/Leaf.java -------------------------------------------------------------------------------- /Chapter20_Composite/before/Client.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter20_Composite/before/Client.java -------------------------------------------------------------------------------- /Chapter20_Composite/before/Component.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter20_Composite/before/Component.java -------------------------------------------------------------------------------- /Chapter20_Composite/before/Composite.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter20_Composite/before/Composite.java -------------------------------------------------------------------------------- /Chapter20_Composite/before/Leaf.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter20_Composite/before/Leaf.java -------------------------------------------------------------------------------- /Chapter20_Composite/img/structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter20_Composite/img/structure.png -------------------------------------------------------------------------------- /Chapter20_Composite/img/structure2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/Chapter20_Composite/img/structure2.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-vivi/JavaDesignPatterns/HEAD/README.md --------------------------------------------------------------------------------