Difference between revisions of "Software design pattern"

From Wiki @ Karl Jones dot com
Jump to: navigation, search
(External links)
(External links)
 
(4 intermediate revisions by the same user 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]]
 
* [[Model-view-controller]]
 
* [[Object-oriented programming]]
 
* [[Object-oriented programming]]
Line 27: Line 41:
 
* [[Pattern]]
 
* [[Pattern]]
 
* [[Pattern language]]
 
* [[Pattern language]]
 +
* [[Pattern theory]]
 +
* [[Pedagogical patterns]]
 +
* [[Portland Pattern Repository]]
 +
* [[Refactoring]]
 +
* [[Software development methodology]]
 
* [[Software engineering]]
 
* [[Software engineering]]
 
* [[Structure]]
 
* [[Structure]]
Line 33: 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:Computer science]]
Line 39: Line 64:
 
[[Category:Software]]
 
[[Category:Software]]
 
[[Category:Software development]]
 
[[Category:Software development]]
 +
[[Category:Software design patterns]]
 
[[Category:Web design and development]]
 
[[Category:Web design and development]]

Latest revision as of 09: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.

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

External links