From 5328603dc214f8a84495a7b4ee9888a7495cdb53 Mon Sep 17 00:00:00 2001 From: Jakub Vojvoda Date: Sun, 4 Sep 2016 23:29:51 +0200 Subject: [PATCH] Initial commit --- README.md | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 72 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4e35d21..a732ce8 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,72 @@ -# design-patterns-cpp -C++ Design Patterns +## C++ Design Patterns + +Software design patterns are general reusable solutions to problems which occur +over and over again in object-oriented design enviroment. It is not a finished +design that can be transformed into source code directly, but it is template how +to solve the problem. Templates in this repository are based mainly on book +[Design Patterns by The "Gang of Four"]. We can classify them by purpose +into creational (abstract the instantiation process), structure (how classes and +objects are composed to form larger structures) and behavioral patterns (the +assignment of responsibilities between objects). + +- Creational Patterns, + - [Abstract Factory] + - [Builder] + - [Factory Method] + - [Prototype] + - [Singleton] +- Structural Patterns + - [Adapter] + - [Bridge] + - [Composite] + - [Decorator] + - [Façade] + - [Flyweight] + - [Proxy] +- Behavioral Patterns + - [Chain of Responsibility] + - [Command] + - [Interpreter] + - [Iterator] + - [Mediator] + - [Memento] + - [Observer] + - [State] + - [Strategy] + - [Template Method] + - [Visitor] + +### Other Languages +In my repository you can find implementation of desgin patterns also in languages as + +* [Design Patterns in C++] +* [Design Patterns in Java] +* [Design Patterns in Python] + +[Design Patterns in C++]: https://github.com/JakubVojvoda/design-patterns-cpp +[Design Patterns in Java]: https://github.com/JakubVojvoda/design-patterns-java +[Design Patterns in Python]: https://github.com/JakubVojvoda/design-patterns-python +[Design Patterns by The "Gang of Four"]: https://en.wikipedia.org/wiki/Design_Patterns +[Abstract Factory]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/abstract-factory +[Builder]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/builder +[Factory Method]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/factory-method +[Prototype]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/prototype +[Singleton]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/singleton +[Adapter]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/adapter +[Bridge]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/bridge +[Composite]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/composite +[Decorator]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/decorator +[Façade]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/facade +[Flyweight]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/flyweight +[Proxy]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/proxy +[Chain of Responsibility]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/chain-of-responsibility +[Command]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/command +[Interpreter]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/interpreter +[Iterator]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/iterator +[Mediator]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/mediator +[Memento]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/memento +[Observer]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/observer +[State]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/state +[Strategy]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/strategy +[Template Method]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/template-method +[Visitor]: https://github.com/JakubVojvoda/design-patterns-cpp/tree/master/visitor