DesignPatterns
From Lost In Wonderlands
Contents
Design Patterns
NeXT Steps
here everything has yet to be done !
collecting more design pattern in the catalog
creating the template page for a design pattern
creating a card for each
coming soon :
Everything You Always Wanted to Know About Design Patterns... (But Were Afraid to Ask)
See also
- Index_of_object-oriented_programming_articles
- SoftwareArchitecture
- DesignPatterns
- AntiPatterns
- Refactoring
- CleanCode
- SecureCode
- UML
- SOLID
- Packages Principle
- KISS
- DRY
- GRASP
- YAGNI
Design Patterns Catalog
Gang Of Four Patterns
Several implementation of Above design patterns in C++
- https://github.com/BartVandewoestyne/Design-Patterns-GoF
- https://github.com/zebmason/GoFRefactored/blob/master/README.md
- http://www.informit.com/articles/article.aspx?p=1404056
- https://www.infoq.com/presentations/gof-patterns-c-plus-plus-boost/
- http://www.c-jump.com/CIS75/Week11/
- http://www.c-jump.com/Download/Patterns/Prototype/html/
- https://github.com/wangqiang8511/C---Design-Patterns-Examples/
Creational Patterns
- Abtract Factory Pattern, https://en.wikipedia.org/wiki/Abstract_factory_pattern
- Builder Pattern, https://en.wikipedia.org/wiki/Builder_pattern
- Factory Method Pattern , https://en.wikipedia.org/wiki/Factory_method_pattern
- Prototype Pattern, https://en.wikipedia.org/wiki/Prototype_pattern
- Singleton Pattern, https://en.wikipedia.org/wiki/Singleton_pattern
Structural Patterns
- Adapter Pattern, https://en.wikipedia.org/wiki/Adapter_pattern
- Bridge Pattern, https://en.wikipedia.org/wiki/Bridge_pattern
- Composite Pattern, https://en.wikipedia.org/wiki/Composite_pattern
- Decorator Pattern, https://en.wikipedia.org/wiki/Decorator_pattern
- Facade Pattern, https://en.wikipedia.org/wiki/Facade_pattern
- Flyweight Pattern, https://en.wikipedia.org/wiki/Flyweight_pattern
- Proxy Pattern,https://en.wikipedia.org/wiki/Proxy_pattern
- Wrapper Pattern
Behavioral Patterns
- Chain Of Responsibility Pattern, https://en.wikipedia.org/wiki/Chain-of-responsibility_pattern
- Chaining Pattern, https://en.wikipedia.org/wiki/Command_pattern
- Command Pattern,https://en.wikipedia.org/wiki/Command_pattern
- Interpreter Pattern, https://en.wikipedia.org/wiki/Interpreter_pattern
- Iterator Pattern, https://en.wikipedia.org/wiki/Iterator_pattern
- Mediator Pattern, https://en.wikipedia.org/wiki/Mediator_pattern
- Memento Pattern, https://en.wikipedia.org/wiki/Memento_pattern
- Observer Pattern, https://en.wikipedia.org/wiki/Observer_pattern
- State Pattern, https://en.wikipedia.org/wiki/State_pattern
- Strategy Pattern, https://en.wikipedia.org/wiki/Strategy_pattern
- Template Method Pattern, https://en.wikipedia.org/wiki/Template_method_pattern
- Visitor Pattern, https://en.wikipedia.org/wiki/Visitor_pattern
Concurrency Patterns
- Active Object, https://en.wikipedia.org/wiki/Active_object
- Asynchronous Method Invocation, https://en.wikipedia.org/wiki/Asynchronous_method_invocation
- Balking pattern, https://en.wikipedia.org/wiki/Balking_pattern
- Binding properties pattern, https://en.wikipedia.org/wiki/Binding_properties_pattern
- Double Checked Locking Pattern, https://en.wikipedia.org/wiki/Double-checked_locking
- Guarded suspension, https://en.wikipedia.org/wiki/Guarded_suspension
- Join Pattern, https://en.wikipedia.org/wiki/Join-pattern
- Leaders/followers pattern
- Lock Pattern, https://en.wikipedia.org/wiki/Lock_(computer_science)
- Monitor Object, https://en.wikipedia.org/wiki/Monitor_(synchronization)
- Proactor Pattern, https://en.wikipedia.org/wiki/Proactor_pattern
- Reactor pattern, https://en.wikipedia.org/wiki/Reactor_pattern
- Readers writers lock pattern, https://en.wikipedia.org/wiki/Readers%E2%80%93writer_lock
- Scheduling pattern, https://en.wikipedia.org/wiki/Scheduling_(computing)
- Thread pool pattern, https://en.wikipedia.org/wiki/Thread_pool
- Thread-local storage, https://en.wikipedia.org/wiki/Thread-local_storage
Architectural_pattern
- Front Controller, https://en.wikipedia.org/wiki/Front_controller
- Interceptor Pattern, https://en.wikipedia.org/wiki/Interceptor_pattern
- Model-View-Controller, https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
- Multi-Tiers, https://en.wikipedia.org/wiki/Multitier_architecture
- Specification Pattern, https://en.wikipedia.org/wiki/Specification_pattern
- Publish-Subscribe Pattern, https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern
- Naked Objects, https://en.wikipedia.org/wiki/Naked_objects
- Service Locator Pattern, https://en.wikipedia.org/wiki/Service_locator_pattern
- Active Record Pattern, https://en.wikipedia.org/wiki/Active_record_pattern
- Identity Map Pattern, https://en.wikipedia.org/wiki/Identity_map_pattern
- Inversion of Control, https://en.wikipedia.org/wiki/Inversion_of_control
- Action-Domain-Responder, https://en.wikipedia.org/wiki/Action%E2%80%93Domain%E2%80%93Responder
- Data Access Object, https://en.wikipedia.org/wiki/Data_access_object
- Data Tranfer Object, https://en.wikipedia.org/wiki/Data_transfer_object
- HightPerformance Data Access, Layerhttp://rlacovara.blogspot.com/2009/02/high-performance-data-access-layer.html
Actor Model
- Actor model
- https://en.wikipedia.org/wiki/Actor_model
- https://fr.wikipedia.org/wiki/Mod%C3%A8le_d%27acteur
- https://www.brianstorti.com/the-actor-model/
- https://dassur.ma/things/actormodel/
- https://mattferderer.com/what-is-the-actor-model-and-when-should-you-use-it
- https://monades.roperzh.com/get-to-know-the-actor-model/
- https://www.techopedia.com/definition/25150/actor-model
- https://www.youtube.com/watch?v=ELwEdb_pD0k
- https://www.youtube.com/watch?v=lPTqcecwkJg
- https://blog.soat.fr/2018/01/les-systemes-reactifs-et-le-pattern-actor-model/
- https://doc.akka.io/docs/akka/current/general/actors.html
- https://www.infoq.com/news/2014/10/intro-actor-model/
- https://hal.archives-ouvertes.fr/hal-01163534v5/document
- https://arxiv.org/ftp/arxiv/papers/1008/1008.1459.pdf
- https://fr.slideshare.net/opencredo/haufe-msaday-the-actor-model-an-alternative-approach-to-concurrency-by-lorenzo-nicora
- implementation
- microsoft
- https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reliable-actors-introduction
- https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/index
- https://docs.microsoft.com/en-us/previous-versions/microsoft-robotics/bb648752(v=msdn.10)
- https://docs.microsoft.com/en-us/previous-versions/microsoft-robotics/bb483056(v=msdn.10)
- https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/dd492627(v=vs.100)
Other Patterns
- Blackboard Pattern, https://en.wikipedia.org/wiki/Blackboard_(design_pattern)
- Business Delegate Pattern, https://en.wikipedia.org/wiki/Business_delegate_pattern
- Composite Entity Pattern, https://en.wikipedia.org/wiki/Composite_entity_pattern
- Dependency Injection, https://en.wikipedia.org/wiki/Dependency_injection
- Intercepting Filter Pattern, https://en.wikipedia.org/wiki/Intercepting_filter_pattern
- Lazy Loading Pattern, https://en.wikipedia.org/wiki/Lazy_loading
- Mock Objects Pattern, https://en.wikipedia.org/wiki/Mock_object
- Null Objets Pattern, https://en.wikipedia.org/wiki/Null_Object_pattern
- Object Pool Pattern, https://en.wikipedia.org/wiki/Object_pool_pattern
- Servant Pattern, https://en.wikipedia.org/wiki/Servant_(design_pattern)
- Twin Pattern, https://en.wikipedia.org/wiki/Twin_pattern
- Type-Tunnel Pattern, https://en.wikipedia.org/wiki/Type_Tunnel_pattern
- Game-Programming-Pattern, https://github.com/munificent/game-programming-patterns
Pattern-Oriented Software Architectures
- Layers Pattern
- Pipes And Filters Pattern
- Blackboard Pattern
- Broker Pattern
- Presenter First Pattern, https://en.wikipedia.org/wiki/Presenter_first_(software_approach)
- Action-Domain-Responder, https://en.wikipedia.org/wiki/Action–domain–responder
- Model-View-Controller Pattern, https://en.wikipedia.org/wiki/Model–view–controller
- Model-View-ViewModel (aka model–view–binder), https://en.wikipedia.org/wiki/Model–view–viewmodel
- Model-View-Presenter pattern, https://en.wikipedia.org/wiki/Model–view–presenter
- Model-View-Adapater pattern, https://en.wikipedia.org/wiki/Model–view–adapter
- Presentation-Abstraction-Control Pattern, https://en.wikipedia.org/wiki/Presentation–abstraction–control
- Hierarchical_model–view–controller Pattern, https://en.wikipedia.org/wiki/Hierarchical_model–view–controller
- Microkernel Pattern
- Reflection Pattern
- Whole-Part Pattern
- Master-Slave Pattern
- Proxy Pattern
- Command Processor Pattern
- View Handler Pattern
- Forwarder-Receiver Pattern
- Client-Dispatcher-Server Pattern
- Publisher-Subscriber Pattern
- NakedObjects, https://en.wikipedia.org/wiki/Naked_objects
People
- https://en.wikipedia.org/wiki/Christopher_Alexander
- https://en.wikipedia.org/wiki/Erich_Gamma
- https://en.wikipedia.org/wiki/Ralph_Johnson_(computer_scientist)
- https://en.wikipedia.org/wiki/John_Vlissideshttps://en.wikipedia.org/wiki/John_Vlissides
- https://en.wikipedia.org/wiki/Grady_Booch
- https://en.wikipedia.org/wiki/Kent_Beck
- https://en.wikipedia.org/wiki/Ward_Cunningham
- https://en.wikipedia.org/wiki/Martin_Fowler
- https://en.wikipedia.org/wiki/Robert_Cecil_Martin
- https://en.wikipedia.org/wiki/Jim_Coplien
- https://en.wikipedia.org/wiki/Douglas_C._Schmidt
- https://en.wikipedia.org/wiki/Linda_Rising
References
- http://archive.oredev.org/download/18.5bd7fa0510edb4a8ce4800019179/Bruce_Douglass_-_Realtime_design_Patterns.pdf
- https://en.wikipedia.org/wiki/The_Hillside_Group
- https://en.wikipedia.org/wiki/Portland_Pattern_Repository
- http://c2.com/cgi/wiki?WelcomeVisitors
- http://c2.com/cgi/wiki?HillsideGroup
- http://sourcemaking.com/
- http://shichuan.github.com/javascript-patterns/
- https://en.wikipedia.org/wiki/Design_Patterns
- https://en.wikipedia.org/wiki/Software_design_pattern
- http://www.javaworld.com/article/2078675/core-java/design-patterns--the-big-picture--part-2--gang-of-four-classics-revisited.html
- http://www.javabrahman.com/design-patterns/gof-gang-four-design-patterns/
- http://codingplayground.blogspot.it/2009/01/design-pattern
- http://www.tutorialspoint.com/design_pattern/design_pattern_tutorial.pdf
- https://csharpdesignpatterns.codeplex.com/
- http://www.codeproject.com/KB/architecture/#Design+Patterns
- https://msdn.microsoft.com/en-us/library/bb190165.aspx
- https://delphipatterns.codeplex.com/
Books
- Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides (Nov 10, 1994)
- Design Pattern Explained, A New Persective on Object-Oriented Design, Alan Shalloway, James Trott, Addison-Wesley, 1st Edition(July 9, 2001), 2nd Edition (October 22, 2004)
- Professional (July 9, 2001), and second edition
- Pattern-Oriented Software Architecture, Wiley, Vol 1 - 5
- Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems, Bruce Powel Douglass, Addison Wesley (September 27,2002)
- Antipatterns, Identification, Refactoring, and Management, Philip A. Laplante, Clin J.Neill, Auerbach Publications (2006)
- Refactoring: Improving the Design of Existing Code, Martin Fowler, Kent Beck, John Brant, William Opdyke, don Roberts, Addison-Wesley Professional, 1 edition (July 8, 1999)
http://www.eventhelix.com/RealtimeMantra/Patterns/#.VuSjttwrKkA