CSC/ECE 517 Fall 2011/ch4 4h kp
Introduction
This wiki article discusses about some of the commonly used & easy to understand Desgin patterns[1] in the software industry. Specifically, we will be studying about the Singleton, Adapter, Command & Strategy patterns.
Design Pattern
Definition
Some of the common definitions available online are as follows.
- "In software engineering, a design pattern is a general reusable solution to a commonly occurring problem within a given context in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved." -Wikipedia <ref>Design Pattern in Computer Science, Wikipedia</ref>
- "A design pattern is a repeatable solution to a software engineering problem. Unlike most program-specific solutions, design patterns are used in many programs. Design patterns are not considered finished product; rather, they are templates that can be applied to multiple situations and can be improved over time, making a very robust software engineering tool. Because development speed is increased when using a proven prototype, developers using design pattern templates can improve coding efficiency and final product readability." -Techopedia <ref>Techopedia explains Design Pattern</ref>
In a layman's term, Design Patterns are
- descriptions of what experienced designers know.
- hints for choosing classes & methods
- higher order abstractions for program organization
- used to weigh design tradeoffs
- used to avoid limitations of implementation language. <ref>Design Patterns in Dynamic Languages - Peter Norvig</ref>
Examples
Singleton
Adapter
Command
Strategy
Conclusion
References
<references/>