Content deleted Content added
Kevin Saff (talk | contribs) m called->known as |
Kevin Saff (talk | contribs) Reorg again. |
||
Line 3:
'''Design patterns''' are recurring solutions to problems in [[object-oriented design]]. The phrase was introduced to [[computer science]] in the [[1990s]] by the text ''[[Design Patterns]]: elements of reusable [[object-oriented software]]''. The scope of the term remained a matter of dispute into the next decade. [[Algorithms]] are not thought of as design patterns, since they solve implementation problems rather than design ones. Typically, a design pattern is thought to encompass a tight interaction of a few classes and objects.
The format has four essential parts, although the names and ordering differ by source:▼
==Pattern Format==
▲The design pattern format has four essential parts, although
===Name===
Every pattern needs a name, to provide a language for design discussion.
===Problem===
Recurring circumstances lead to the discovery of this pattern by multiple persons. A primary goal of design is to limit the amount of source change needed to change a program's observed behavior, but this can be difficult to achieve if a designer does not understand the implications of a design.
===Solution===
The solution is described sufficiently for implementation by novices, although the implementation is usually given in general enough terms that it can be adapted to different projects.
===Consequences===
Applying this solution will effect the rest of the project in certain ways, so it is important to mention any common negative or serendipitous side-effects.
==Similar Terms==
Poor (yet unfortunately common) solutions to common problems are sometimes known as '''[[anti-pattern]]s'''.
Line 17 ⟶ 25:
See also [[amelioration pattern]]
==A List of Design Patterns==
Fundamental patterns▼
▲===Fundamental patterns===
* [[Delegation pattern]]
* [[Interface pattern]]
Line 24 ⟶ 34:
* [[Marker Interface pattern]]
===Creational patterns
* [[Abstract factory pattern]]
* [[Anonymous subroutine objects pattern]]
Line 32 ⟶ 42:
* [[Singleton pattern]] - an object which is unique in its kind in the whole system
===Structural patterns===
* [[Adapter pattern]]
* [[Bridge pattern]]
Line 44 ⟶ 54:
* [[Proxy pattern]]
===Behavioral patterns===
* [[Breadth first recursion]]
* [[Chain of responsibility pattern]]
Line 61 ⟶ 71:
* [[Hierarchical visitor pattern]]
===[[Concurrency]] patterns===
* [[Action at a distance pattern]]
* [[Balking pattern]]
Line 70 ⟶ 80:
* [[Disable job requests while running job pattern]]
===RealTime patterns===
* [[Scheduled task pattern]]
* [[User interface pattern]]
|