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 design solution and design implementation guidance.
- It can typically structure Design Approach through design solution framework and design pattern language.
- It can typically optimize Design Implementation Process through design best practice and design standard method.
- It can typically improve Design Quality through design pattern application and design solution refinement.
- It can typically facilitate Design Knowledge Transfer through design pattern documentation and design solution sharing.
- It can typically formalize Design Solution through design pattern definition and design solution template.
- It can typically provide Design Consistency through design standard application and design pattern implementation.
- ...
- It can often enhance Design Efficiency through reusable design solution and design pattern replication.
- It can often support Design Problem Analysis through design pattern recognition and design solution matching.
- It can often guide Design Decision through design solution selection and design pattern adaptation.
- It can often maintain Design Implementation Consistency through design standard application and design pattern adherence.
- It can often accelerate Design Process through design pattern library and design solution repository.
- It can often improve Design Communication through design pattern vocabulary and design solution terminology.
- ...
- It can range from being a Simple Design Pattern to being a Complex Design Pattern, depending on its design solution complexity.
- It can range from being a Domain-Specific Design Pattern to being a General Design Pattern, depending on its design application scope.
- It can range from being a Concrete Design Pattern to being an Abstract Design Pattern, depending on its design implementation level.
- It can range from being a Static Design Pattern to being an Dynamic Design Pattern, depending on its design flexibility degree.
- It can range from being a Technical Design Pattern to being a Conceptual Design Pattern, depending on its design abstraction level.
- It can range from being an Implementation Design Pattern to being an Architectural Design Pattern, depending on its design solution scale.
- ...
- It can have Design Pattern Elements through design solution components.
- It can have Design Implementation Guides through design usage instructions.
- It can have Design Quality Metrics through design effectiveness measures.
- It can have Design Pattern Context through design problem situations.
- It can have Design Pattern Consequences through design solution implications.
- ...
- Examples:
- Software Design Patterns, such as:
- Software Architectural Design Patterns, such as:
- Software System Structure Design Patterns (for software system organization), such as:
- Software Layer Design Patterns for software system stratification.
- Software Microservice Design Patterns for software service distribution.
- Software Model-View-Controller Design Patterns for software component separation.
- Software Service-Oriented Architecture Design Patterns for software service organization.
- Software Component Design Patterns (for software module organization), such as:
- Software System Structure Design Patterns (for software system organization), such as:
- Software Behavioral Design Patterns, such as:
- Software Architectural Design Patterns, such as:
- Interface Design Patterns, such as:
- User Interface Design Patterns, such as:
- User Navigation Design Patterns (for user interface movement), such as:
- User Form Design Patterns (for user interface data input), such as:
- User Interaction Design Patterns, such as:
- User Flow Design Patterns (for user interaction sequence), such as:
- User Feedback Design Patterns (for user interaction response), such as:
- User Interface Design Patterns, such as:
- Information Design Patterns, such as:
- Data Organization Design Patterns, such as:
- Data Structure Design Patterns (for data arrangement), such as:
- Data Access Design Patterns (for data retrieval), such as:
- Information Presentation Design Patterns, such as:
- Data Organization Design Patterns, such as:
- Process Design Patterns, such as:
- Workflow Design Patterns, such as:
- Task Organization Design Patterns (for process structure), such as:
- Process Control Design Patterns (for process management), such as:
- Business Process Design Patterns, such as:
- Workflow Design Patterns, such as:
- AI Design Patterns, such as:
- ...
- Software Design Patterns, such as:
- Counter-Examples:
- Ad Hoc Design Solution, which lacks design pattern structure and reusable design elements.
- Random Design Approach, which lacks systematic design method and proven design effectiveness.
- One-Time Design Fix, which lacks design pattern documentation and design solution generalization.
- Correspondence Design Pattern, which describes relationship design patterns rather than design solutions.
- Design Anti-Pattern, which identifies problematic design solutions rather than recommended design approaches.
- Design Implementation Detail, which specifies concrete design implementation rather than abstract design solution.
- See: Pattern Language, Solution Framework, Implementation Method, Best Practice, Design Methodology, Problem Solving, Pattern Analysis, Design Process, Software Engineering, User Experience Design, Information Architecture.
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