[CodeGuru]C++ Design Pattern: What is a Design Pattern?
转载
February 9th, 2005, 11:07 AM |
|
C++ Design Pattern: What is a Design Pattern?
Q: What is a Design Pattern?
A: Design Patterns represent solutions to problems what arise when developing software within a particular context.
Quote: 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. C. Alexander, The Timeless Way of Building, 1979 |
Quote: Patterns help you learn from other's successes, instead of your own failures. Mark Johnson (cited by Bruce Eckel) |
Q: How many types of design patterns exist?
A: Basically, there are three categories: - Creational Patterns: deal with initializing and configuring classes and objects
- Structural Patterns: deal with decoupling the interface and implementation of classes and objects
- Behavioral Patterns: deal with dynamic interactions among societies of classes and objects
Q: What are good books about design patterns.
A: Here are some must-have books: - Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (also known as Gang of Four)
- Thinking in Patterns with Java, by Bruce Eckel
- Thinking in Patterns with C++, by Bruce Eckel
Q: How can I quickly find information about a design pattern?
A: Here are some links on the web:
General
Creational Patterns - Abstract Factory: Creates an instance of several families of classes
resource 1resource 2 Builder: Separates object construction from its representation Factory Method: Creates an instance of several derived classes - resource 1
- resource 2
- resource 3
Prototype: A fully initialized instance to be copied or cloned Singleton: A class of which only a single instance can exist
Structural Patterns - Adapter: Match interfaces of different classes
- Bridge: Separates an object’s interface from its implementation
- Composite: A tree structure of simple and composite objects
- Decorator: Add responsibilities to objects dynamically
- Façade: A single class that represents an entire subsystem
- Flyweight: A fine-grained instance used for efficient sharing
- Proxy: An object representing another object
Behavioral Patterns - Chain of Responsibility: A way of passing a request between a chain of objects
- Command: Encapsulate a command request as an object
- Interpreter: A way to include language elements in a program
- Iterator: Sequentially access the elements of a collection
- Mediator: Defines simplified communication between classes
- Memento: Capture and restore an object's internal state
- Observer: A way of notifying change to a number of classes
- State: Alter an object's behavior when its state changes
- Strategy: Encapsulates an algorithm inside a class
- Template Method: Defer the exact steps of an algorithm to a subclass
- Visitor: Defines a new operation to a class without change
Last edited by Andreas Masur; July 27th, 2005 at 01:00 PM. |
cilu |
View Public Profile |
Visit cilu's homepage! |
Find all posts by cilu |
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。