Patterns: Difference between revisions
Line 7: | Line 7: | ||
Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. | Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. | ||
Experienced object-oriented designers will tell you that a reusable and flexible design is difficult if not impossible to get "right" the first time. | Experienced object-oriented designers will tell you that a reusable and flexible design is difficult if not impossible to get "right" the first time. | ||
Before a design is finished, they usually try to reuse it several times, modifying it each time. <ref>Design Patterns: Elements of Reusable Object-Oriented Software | Before a design is finished, they usually try to reuse it several times, modifying it each time. <ref>Design Patterns: Elements of Reusable Object-Oriented Software, ''The Gang of Four (GoF)'', Authors Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides with a foreword by Grady Booch, 1994, ISBN 0-201-63361-2. There are PDF files of the book on the internet.</ref> | ||
== Computer Science Patterns (Design Patterns) == | == Computer Science Patterns (Design Patterns) == |
Revision as of 10:43, 18 June 2017
Introduction
Patterns exist in nature (Dunes, Grand Canyon), art (Modern, Impressionism), science and mathematics (Fractals, Crystals) and Computer Science (Design Patterns).
Christopher Alexander says, Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice [1]. Even though Alexander was talking about patterns in buildings and towns, what he says is true about object-oriented design patterns
Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. Experienced object-oriented designers will tell you that a reusable and flexible design is difficult if not impossible to get "right" the first time. Before a design is finished, they usually try to reuse it several times, modifying it each time. [2]
Computer Science Patterns (Design Patterns)
All well-structured systems are full of patterns. A pattern provides a common solution to a common problem in a given context. A mechanism is a design pattern that applies to a society of classes; a framework is typically an architectural pattern that provides an extensible template for applications within a domain.
Patterns are used to specify mechanisms and frameworks that shape the architecture of your system.
Classification
|
| ||||||||||||||||||
See also
- All App Labs Java Design Patterns Tutorial
- Links Harm Frielink - Pattern
- Wikipedia Patterns
Modeling
Books
- AntiPatters, by William J. Brown, Raphael C. Malveau, Hays W. McCormick III, Thomas J. Mowbray. An AntiPattern is a literary form that describes a commonly occurring solution to a problem that generates decidedly negative consequences.
- Design Patterns, Elements of Reusable Object Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides.
- Head First Design Patterns by by Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra.
- Java Design Patterns - A Tutorial. by James W. Cooper.
- Refactoring: Improving the Design of Existing Code by Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts.
Reference
- ↑ Christopher Alexander, Sara Ishikawa, Murray Silverstein, Max Jacobson, Ingrid Fiksdahl-King, and Shlomo Angel. A Pattern Language. Oxford University Press, New York, 1977.
- ↑ Design Patterns: Elements of Reusable Object-Oriented Software, The Gang of Four (GoF), Authors Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides with a foreword by Grady Booch, 1994, ISBN 0-201-63361-2. There are PDF files of the book on the internet.