Design Pattern
(Redirected from Design pattern)
Jump to navigation
Jump to search
A Design Pattern is a solution pattern that structures design approaches and implementation methods (to solve recurring problems and optimize design processes).
- AKA: Solution Pattern, Design Template, Pattern Solution, Reusable Design.
- Context:
- It can typically solve Recurring Problem through proven solution and implementation guidance.
- It can typically structure Design Approach through solution framework and pattern language.
- It can typically optimize Implementation Process through best practice and standard method.
- It can typically improve Design Quality through pattern application and solution refinement.
- It can typically facilitate Knowledge Transfer through pattern documentation and solution sharing.
- ...
- It can often enhance Design Efficiency through reusable solution and pattern replication.
- It can often support Problem Analysis through pattern recognition and solution matching.
- It can often guide Design Decision through solution selection and pattern adaptation.
- It can often maintain Design Consistency through standard application and pattern adherence.
- ...
- It can range from being a Simple Design Pattern to being a Complex Design Pattern, depending on its solution complexity.
- It can range from being a Domain-Specific Pattern to being a General Design Pattern, depending on its application scope.
- It can range from being a Concrete Pattern to being an Abstract Pattern, depending on its implementation level.
- It can range from being a Static Design Pattern to being an Adaptive Design Pattern, depending on its flexibility degree.
- It can range from being a Technical Pattern to being a Conceptual Pattern, depending on its abstraction level.
- ...
- It can have Pattern Elements through solution components.
- It can have Implementation Guides through usage instructions.
- It can have Quality Metrics through effectiveness measures.
- ...
- Examples:
- Software Design Patterns, such as:
- Architectural Patterns, such as:
- System Structure Patterns (for system organization), such as:
- Component Patterns (for module organization), such as:
- Architectural Patterns, such as:
- Interface Design Patterns, such as:
- Interaction Patterns, such as:
- User Interface Patterns (for interface design), such as:
- Flow Patterns (for interaction sequence), such as:
- Interaction Patterns, such as:
- Information Design Patterns, such as:
- Data Organization Patterns, such as:
- Structure Patterns (for data arrangement), such as:
- Access Patterns (for data retrieval), such as:
- Data Organization Patterns, such as:
- Process Design Patterns, such as:
- Workflow Patterns, such as:
- Task Organization Patterns (for process structure), such as:
- Control Patterns (for process management), such as:
- Workflow Patterns, such as:
- ...
- Software Design Patterns, such as:
- Counter-Examples:
- Ad Hoc Solution, which lacks pattern structure and reusable elements.
- Random Approach, which lacks systematic method and proven effectiveness.
- One-Time Fix, which lacks pattern documentation and solution generalization.
- Correspondence Pattern, which describes relationship patterns rather than design solutions.
- See: Pattern Language, Solution Framework, Implementation Method, Best Practice, Design Methodology, Problem Solving, Pattern Analysis, Design Process.
References
2014
- (Wikipedia, 2014) ⇒ http://en.wikipedia.org/wiki/design_pattern Retrieved:2014-4-14.
- A design pattern in architecture and computer science is a formal way of documenting a solution to a design problem in a particular field of expertise. The idea was introduced by the architect Christopher Alexander in the field of architecture[1] and has been adapted for various other disciplines, including computer science.[2] An organized collection of design patterns that relate to a particular field is called a pattern language.
The usefulness of speaking of patterns is to have a common terminology for discussing the situations designers already see over and over.
- A design pattern in architecture and computer science is a formal way of documenting a solution to a design problem in a particular field of expertise. The idea was introduced by the architect Christopher Alexander in the field of architecture[1] and has been adapted for various other disciplines, including computer science.[2] An organized collection of design patterns that relate to a particular field is called a pattern language.
- ↑ Alexander, A Pattern Language
- ↑ Gamma et al., 1994, Design Patterns (the “Gang of Four” book)
2012
- http://ontologydesignpatterns.org/wiki/Odp:WhatIsAPattern
- Patterns are used in many areas as "templates" or abstract descriptions encoding best practices of some field. The introduction of patterns in computer science is generally attributed to inspiration taken from the architecture field and Christopher Alexander. Software patterns are probably most well known as Design Patterns, as in the GoF book from 1995. Other patterns include data model patterns, linguistic patterns, knowledge patterns and many more.
1998
- (Gelfand et al., 1998) ⇒ Natasha Gelfand, Michael T. Goodrich, and Roberto Tamassia. (1998). “Teaching Data Structure Design Patterns.” In: Proceedings of the Twenty-Ninth SIGCSE Technical Symposium on Computer Science Education. doi:10.1145/273133.274324
1979
- (Alexander, 1979) ⇒ Christopher Alexander. (1979). “The Timeless Way of Building." Oxford University Press. ISBN:0195024028