Difference between revisions of "Software design pattern"
Karl Jones (Talk | contribs) (→See also) |
Karl Jones (Talk | contribs) (→External links) |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 21: | Line 21: | ||
== See also == | == See also == | ||
+ | * [[Abstraction principle (computer programming)]] | ||
+ | * [[Algorithmic skeleton]] | ||
+ | * [[Anti-pattern]] | ||
+ | * [[Architectural pattern]] | ||
+ | * [[Creational pattern]] | ||
+ | * [[Debugging patterns]] | ||
* [[Design pattern]] | * [[Design pattern]] | ||
+ | * [[Distributed design patterns]] | ||
+ | * [[Double-chance function]] | ||
+ | * [[Enterprise Architecture framework]] | ||
+ | * [[GRASP (object-oriented design)]] | ||
+ | * [[Helper class]] | ||
+ | * [[Interaction design pattern]] | ||
+ | * [[List of software development philosophies]] | ||
+ | * [[List of software engineering topics]] | ||
+ | * [[Model-view-controller]] | ||
* [[Object-oriented programming]] | * [[Object-oriented programming]] | ||
+ | * [[Observer pattern]] | ||
* [[Pattern]] | * [[Pattern]] | ||
+ | * [[Pattern language]] | ||
+ | * [[Pattern theory]] | ||
+ | * [[Pedagogical patterns]] | ||
+ | * [[Portland Pattern Repository]] | ||
+ | * [[Refactoring]] | ||
+ | * [[Software development methodology]] | ||
* [[Software engineering]] | * [[Software engineering]] | ||
* [[Structure]] | * [[Structure]] | ||
Line 30: | Line 52: | ||
* [https://en.wikipedia.org/wiki/Software_design_pattern Software design pattern] @ Wikipedia | * [https://en.wikipedia.org/wiki/Software_design_pattern Software design pattern] @ Wikipedia | ||
+ | * [https://www.oreilly.com/ideas/5-reasons-to-finally-learn-design-patterns 5 reasons to finally learn design patterns] @ oreilly.com | ||
+ | ** Make your life easier by not reinventing the wheel | ||
+ | ** Improve your object-oriented skills | ||
+ | ** Recognize patterns in libraries and languages | ||
+ | ** Use the power of a shared vocabulary | ||
+ | ** Find truth and beauty | ||
+ | |||
+ | [[Category:Computer science]] | ||
+ | [[Category:Design]] | ||
+ | [[Category:Patterns]] | ||
+ | [[Category:Software]] | ||
+ | [[Category:Software development]] | ||
+ | [[Category:Software design patterns]] | ||
+ | [[Category:Web design and development]] |
Latest revision as of 08:08, 18 October 2016
In software engineering, a design pattern is a general reusable solution to a commonly occurring problem within a given context in software design.
Contents
Description
A design pattern is a description or template for how to solve a problem that can be used in many different situations.
Patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system.
Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved.
Patterns that imply object-orientation or, more generally, mutable state, are not as applicable in functional programming languages.
Not a finished design
A design pattern is not a finished design that can be transformed directly into source code or machine code.
Design patterns in other fields
The concept of design patterns originated in architecture, and subsequently spread to other fields.
See also
- Abstraction principle (computer programming)
- Algorithmic skeleton
- Anti-pattern
- Architectural pattern
- Creational pattern
- Debugging patterns
- Design pattern
- Distributed design patterns
- Double-chance function
- Enterprise Architecture framework
- GRASP (object-oriented design)
- Helper class
- Interaction design pattern
- List of software development philosophies
- List of software engineering topics
- Model-view-controller
- Object-oriented programming
- Observer pattern
- Pattern
- Pattern language
- Pattern theory
- Pedagogical patterns
- Portland Pattern Repository
- Refactoring
- Software development methodology
- Software engineering
- Structure
External links
- Software design pattern @ Wikipedia
- 5 reasons to finally learn design patterns @ oreilly.com
- Make your life easier by not reinventing the wheel
- Improve your object-oriented skills
- Recognize patterns in libraries and languages
- Use the power of a shared vocabulary
- Find truth and beauty