#Design-Patterns-and-Object-Oriented-concepts
Structural Patterns: Decorator, Proxy, Bridge, Composite, Flyweight, Adapter and Façade
- Decorator pattern theory code (decorator-theory.cs)
- Decorator pattern example code - Photo Decorator (decorator-photo.cs)
- Proxy pattern theory code (proxy-theory.cs)
- Proxy pattern example code - SpaceBook (proxy-spacebook.cs)
- Bridge pattern theory code (bridge-theory.cs)
- Bridge pattern example code - OpenBook (bridge-openbook.cs)
- Composite pattern - namespace code (composite-theory-ns.cs)
- Composite pattern - Photo Library sample run (composite.dat)
- Composite pattern example code - Photo Library (composite-photolibrary.cs)
- Flyweight pattern example - Photo Group including the FlyweightPattern namespace (flyweight-photogroup.cs, flyweight-theory-ns.cs)
- Adapter pattern theory code (adapter-theory.cs)
- Two-way Adapter pattern example code - Seabird (adapter-twoway-seabird.cs)
- Pluggable Adapter pattern theory code (adapter-pluggable-theory.cs)
- Pluggable Adapter pattern example code - MyCoolBook (adapter-pluggable-coolbook.cs)
- Façade pattern theory code (facade-theory-main.cs, facade-theory-ns.cs)
Creational Patterns: Prototype, Factory Method, and Singleton
- Prototype pattern theory code - namespace (prototype-theory-ns.cs)
- Prototype pattern theory code (prototype-theory-main.cs)
- Prototype pattern - Photo archive (prototype-photoarchive.cs prototype.dat)
- Factory Method pattern example code (factorymethod-avocados.cs)
- Singleton pattern theory code (singleton-theory.cs)
- Singleton pattern - lazy instantiation (singleton-theory-lazy.cs)
- Singleton pattern generic code (singleton-theory-lazy-generic.cs)
- Abstract Factory pattern example code (abstractfactory-bags.cs)
- Builder pattern theory code (builder-theory.cs)
- Builder pattern example code (builder-bags.cs)
Behavioural Patterns: Strategy, State, Template Method, Chain of Responsibility, Command, Iterator, Mediator, Observer, Visitor, Interpreter, and Memento
- Strategy pattern theory code (strategy-theory.cs)
- Strategy pattern example code - Sorting Animator (strategy-sorting.cs)
- State pattern theory code (state-theory.cs)
- State pattern example code - RPC game (state-game.cs)
- Template Method pattern theory code (templatemethod-theory.cs)
- Chain of Responsibility pattern theory code (chain-theory.cs, chain-theory-exception.cs)
- Chain of Responsibility pattern example code - Trusty Bank (chain-bank.cs)
- Command pattern theory code (command-theory.cs)
- Command pattern theory code - multireceiver version (command-multiReceiver.cs)
- Command pattern example code - menu handler (command-pastePrint.cs)
- Iterator pattern theory code (iterator-theory.cs)
- Iterator pattern LINQ code (iterator-linq.cs)
- Iterator pattern - Family tree (iterator-familytree.cs)
- Mediator pattern theory code (mediator-theory.cs)
- Mediator pattern example code - chat room (mediator-chatroom.cs)
- Observer pattern theory code (observer-theory.cs)
- Observer pattern - Blogs (observer-blogs.cs)
- Visitor pattern theory code (visitor-theory.cs)
- Visitor pattern example code - course marks (visitor-course.cs)
- Visitor theory - reflection (visitor-theory-reflection.cs)
- Interpreter - Course structure (interpreter-course.cs)
- Interpreter pattern - Mirrors (interpreter-mirrors.cs calc_winforms.xml)
- Memento pattern theory code (memento-theory.cs)
- Memento pattern example code - TicTacToe (memento-example.cs)