DesignPatterns
From Lost In Wonderlands
Contents
Design Patterns
by paul.plaquette, Senior Software Engineer, Trilda Open Source
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
- DesignPatterns
- AntiPatterns
- Refactoring
- CleanCode
- SecureCode
- UML
- SOLID
- Packages Principle
- KISS
- DRY
- GRASP
- YAGNI
Design Patterns Catalog
Gang Of Four Pattern
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
- Data Access Object, https://en.wikipedia.org/wiki/Data_access_object
- Data Tranfer Object, https://en.wikipedia.org/wiki/Data_transfer_object
- Action-Domain-Responder, https://en.wikipedia.org/wiki/Action%E2%80%93Domain%E2%80%93Responder
- Inversion of Control, https://en.wikipedia.org/wiki/Inversion_of_control
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 Injecttion, 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
Pattern-Oriented Software Architectures
- Layers Pattern
- Pipes And Filters Pattern
- Blackboard Pattern
- Broker Pattern
- Model-View-Controller Pattern
- Presentation-Abstraction-Control Pattern
- 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
References
- 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/
- 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)