gitextract_qiu8ox4r/ ├── .gitattributes ├── .gitignore ├── LICENSE ├── Makefile ├── behavioral_patterns/ │ ├── behavioral.rst │ ├── command.rst │ ├── mediator.rst │ ├── observer.rst │ ├── state.rst │ └── strategy.rst ├── code/ │ ├── AbstractFactory/ │ │ ├── AbstractFactory.cpp │ │ ├── AbstractFactory.h │ │ ├── AbstractProductA.cpp │ │ ├── AbstractProductA.h │ │ ├── AbstractProductB.cpp │ │ ├── AbstractProductB.h │ │ ├── ConcreteFactory1.cpp │ │ ├── ConcreteFactory1.h │ │ ├── ConcreteFactory2.cpp │ │ ├── ConcreteFactory2.h │ │ ├── ProductA1.cpp │ │ ├── ProductA1.h │ │ ├── ProductA2.cpp │ │ ├── ProductA2.h │ │ ├── ProductB1.cpp │ │ ├── ProductB1.h │ │ ├── ProductB2.cpp │ │ ├── ProductB2.h │ │ ├── main.cfp │ │ ├── main.cfpg │ │ ├── main.cpp │ │ └── mingw5/ │ │ ├── AbstractFactory.o │ │ ├── AbstractProductA.o │ │ ├── AbstractProductB.o │ │ ├── ConcreteFactory1.o │ │ ├── ConcreteFactory2.o │ │ ├── ProductA1.o │ │ ├── ProductA2.o │ │ ├── ProductB1.o │ │ ├── ProductB2.o │ │ └── main.o │ ├── Adapter/ │ │ ├── Adaptee.cpp │ │ ├── Adaptee.h │ │ ├── Adapter.cpp │ │ ├── Adapter.h │ │ ├── Client.cpp │ │ ├── Client.h │ │ ├── Target.cpp │ │ ├── Target.h │ │ ├── main.cfp │ │ ├── main.cfpg │ │ ├── main.cpp │ │ └── mingw5/ │ │ ├── Adaptee.o │ │ ├── Adapter.o │ │ ├── Target.o │ │ └── main.o │ ├── Bridge/ │ │ ├── Abstraction.cpp │ │ ├── Abstraction.h │ │ ├── ConcreteImplementorA.cpp │ │ ├── ConcreteImplementorA.h │ │ ├── ConcreteImplementorB.cpp │ │ ├── ConcreteImplementorB.h │ │ ├── Implementor.cpp │ │ ├── Implementor.h │ │ ├── RefinedAbstraction.cpp │ │ ├── RefinedAbstraction.h │ │ ├── main.cfp │ │ ├── main.cfpg │ │ ├── main.cpp │ │ └── mingw5/ │ │ ├── Abstraction.o │ │ ├── ConcreteImplementorA.o │ │ ├── ConcreteImplementorB.o │ │ ├── Implementor.o │ │ ├── RefinedAbstraction.o │ │ └── main.o │ ├── Builder/ │ │ ├── Builder.cpp │ │ ├── Builder.h │ │ ├── ConcreteBuilder.cpp │ │ ├── ConcreteBuilder.h │ │ ├── Director.cpp │ │ ├── Director.h │ │ ├── Product.cpp │ │ ├── Product.h │ │ ├── main.cfp │ │ ├── main.cfpg │ │ ├── main.cpp │ │ └── mingw5/ │ │ ├── Builder.o │ │ ├── ConcreteBuilder.o │ │ ├── Director.o │ │ ├── Product.o │ │ └── main.o │ ├── Command/ │ │ ├── Command.cpp │ │ ├── Command.h │ │ ├── ConcreteCommand.cpp │ │ ├── ConcreteCommand.h │ │ ├── Invoker.cpp │ │ ├── Invoker.h │ │ ├── Receiver.cpp │ │ ├── Receiver.h │ │ ├── main.cfp │ │ ├── main.cfpg │ │ ├── main.cpp │ │ └── mingw5/ │ │ ├── Command.o │ │ ├── ConcreteCommand.o │ │ ├── Invoker.o │ │ ├── Receiver.o │ │ └── main.o │ ├── Decorator/ │ │ ├── Component.cpp │ │ ├── Component.h │ │ ├── ConcreteComponent.cpp │ │ ├── ConcreteComponent.h │ │ ├── ConcreteDecoratorA.cpp │ │ ├── ConcreteDecoratorA.h │ │ ├── ConcreteDecoratorB.cpp │ │ ├── ConcreteDecoratorB.h │ │ ├── Decorator.cpp │ │ ├── Decorator.h │ │ ├── main.cfp │ │ ├── main.cfpg │ │ ├── main.cpp │ │ └── mingw5/ │ │ ├── Component.o │ │ ├── ConcreteComponent.o │ │ ├── ConcreteDecoratorA.o │ │ ├── ConcreteDecoratorB.o │ │ ├── Decorator.o │ │ └── main.o │ ├── Facade/ │ │ ├── Client.cpp │ │ ├── Client.h │ │ ├── Facade.cpp │ │ ├── Facade.h │ │ ├── SystemA.cpp │ │ ├── SystemA.h │ │ ├── SystemB.cpp │ │ ├── SystemB.h │ │ ├── SystemC.cpp │ │ ├── SystemC.h │ │ ├── main.cfp │ │ ├── main.cfpg │ │ ├── main.cpp │ │ └── mingw5/ │ │ ├── Facade.o │ │ ├── SystemA.o │ │ ├── SystemB.o │ │ ├── SystemC.o │ │ └── main.o │ ├── FactoryMethod/ │ │ ├── Client.cpp │ │ ├── Client.h │ │ ├── ConcreteFactory.cpp │ │ ├── ConcreteFactory.h │ │ ├── ConcreteProduct.cpp │ │ ├── ConcreteProduct.h │ │ ├── Factory.cpp │ │ ├── Factory.h │ │ ├── Product.cpp │ │ ├── Product.h │ │ ├── main.cfp │ │ ├── main.cfpg │ │ ├── main.cpp │ │ └── mingw5/ │ │ ├── Client.o │ │ ├── ConcreteFactory.o │ │ ├── ConcreteProduct.o │ │ ├── Factory.o │ │ ├── Product.o │ │ └── main.o │ ├── Flyweight/ │ │ ├── ConcreteFlyweight.cpp │ │ ├── ConcreteFlyweight.h │ │ ├── Flyweight.cpp │ │ ├── Flyweight.h │ │ ├── FlyweightFactory.cpp │ │ ├── FlyweightFactory.h │ │ ├── UnsharedConcreteFlyweight.cpp │ │ ├── UnsharedConcreteFlyweight.h │ │ ├── main.cfp │ │ ├── main.cfpg │ │ ├── main.cpp │ │ └── mingw5/ │ │ ├── ConcreteFlyweight.o │ │ ├── Flyweight.o │ │ ├── FlyweightFactory.o │ │ └── main.o │ ├── Mediator/ │ │ ├── Colleague.cpp │ │ ├── Colleague.h │ │ ├── ConcreteColleagueA.cpp │ │ ├── ConcreteColleagueA.h │ │ ├── ConcreteColleagueB.cpp │ │ ├── ConcreteColleagueB.h │ │ ├── ConcreteMediator.cpp │ │ ├── ConcreteMediator.h │ │ ├── Mediator.cpp │ │ ├── Mediator.h │ │ ├── main.cfp │ │ ├── main.cfpg │ │ ├── main.cpp │ │ └── mingw5/ │ │ ├── Colleague.o │ │ ├── ConcreteColleagueA.o │ │ ├── ConcreteColleagueB.o │ │ ├── ConcreteMediator.o │ │ ├── Mediator.o │ │ └── main.o │ ├── Obeserver/ │ │ ├── ConcreteObeserver.cpp │ │ ├── ConcreteObeserver.h │ │ ├── ConcreteSubject.cpp │ │ ├── ConcreteSubject.h │ │ ├── Obeserver.cpp │ │ ├── Obeserver.h │ │ ├── Subject.cpp │ │ ├── Subject.h │ │ ├── main.cfp │ │ ├── main.cfpg │ │ ├── main.cpp │ │ └── mingw5/ │ │ ├── ConcreteObeserver.o │ │ ├── ConcreteSubject.o │ │ ├── Obeserver.o │ │ ├── Subject.o │ │ └── main.o │ ├── Proxy/ │ │ ├── Proxy.cpp │ │ ├── Proxy.h │ │ ├── RealSubject.cpp │ │ ├── RealSubject.h │ │ ├── Subject.cpp │ │ ├── Subject.h │ │ ├── main.cfp │ │ ├── main.cfpg │ │ ├── main.cpp │ │ └── mingw5/ │ │ ├── Proxy.o │ │ ├── RealSubject.o │ │ ├── Subject.o │ │ └── main.o │ ├── SimpleFactory/ │ │ ├── ConcreteProductA.cpp │ │ ├── ConcreteProductA.h │ │ ├── ConcreteProductB.cpp │ │ ├── ConcreteProductB.h │ │ ├── Factory.cpp │ │ ├── Factory.h │ │ ├── Product.cpp │ │ ├── Product.h │ │ ├── main.cfp │ │ ├── main.cfpg │ │ ├── main.cpp │ │ └── mingw5/ │ │ ├── ConcreteProductA.o │ │ ├── ConcreteProductB.o │ │ ├── Factory.o │ │ ├── Product.o │ │ └── main.o │ ├── Singleton/ │ │ ├── Singleton.cpp │ │ ├── Singleton.h │ │ ├── main.cfp │ │ ├── main.cfpg │ │ ├── main.cpp │ │ └── mingw5/ │ │ ├── Singleton.o │ │ └── main.o │ ├── State/ │ │ ├── ConcreteStateA.cpp │ │ ├── ConcreteStateA.h │ │ ├── ConcreteStateB.cpp │ │ ├── ConcreteStateB.h │ │ ├── Context.cpp │ │ ├── Context.h │ │ ├── State.cpp │ │ ├── State.h │ │ ├── main.cfp │ │ ├── main.cfpg │ │ ├── main.cpp │ │ └── mingw5/ │ │ ├── ConcreteStateA.o │ │ ├── ConcreteStateB.o │ │ ├── Context.o │ │ ├── State.o │ │ └── main.o │ ├── Strategy/ │ │ ├── ConcreteStrategyA.cpp │ │ ├── ConcreteStrategyA.h │ │ ├── ConcreteStrategyB.cpp │ │ ├── ConcreteStrategyB.h │ │ ├── Context.cpp │ │ ├── Context.h │ │ ├── Strategy.cpp │ │ ├── Strategy.h │ │ ├── main.cfp │ │ ├── main.cfpg │ │ ├── main.cpp │ │ ├── main.o │ │ └── mingw5/ │ │ ├── ConcreteStrategyA.o │ │ ├── ConcreteStrategyB.o │ │ ├── Context.o │ │ ├── Strategy.o │ │ └── main.o │ └── main/ │ ├── main.cfp │ ├── main.cfpg │ └── main.cpp ├── conf.py ├── creational_patterns/ │ ├── abstract_factory.rst │ ├── builder.rst │ ├── creational.rst │ ├── factory_method.rst │ ├── simple_factory.rst │ └── singleton.rst ├── design_patterns.EAP ├── dp_tmp.txt ├── index.rst ├── make.bat ├── read_uml.rst ├── readme.rst ├── sphinx_rtd_theme/ │ ├── __init__.py │ ├── breadcrumbs.html │ ├── footer.html │ ├── layout.html │ ├── layout_old.html │ ├── search.html │ ├── searchbox.html │ ├── static/ │ │ ├── css/ │ │ │ ├── badge_only.css │ │ │ ├── font_lato_googleapi.css │ │ │ └── theme.css │ │ ├── fonts/ │ │ │ └── FontAwesome.otf │ │ └── js/ │ │ └── theme.js │ ├── theme.conf │ └── versions.html ├── state_diagram.vsd └── structural_patterns/ ├── adapter.rst ├── bridge.rst ├── decorator.rst ├── facade.rst ├── flyweight.rst ├── proxy.rst └── structural.rst