140 likes | 149 Views
A catalog of design patterns for creating reusable object-oriented software, with examples and guidelines for implementation.
E N D
CIS 644 Thurs. Sept. 23, 1999 W6A …again scenarios … signatures …. … patterns
Design Patterns: Elements of Reusable Object Oriented Software Erich Gamma, Richard Helm, Ralph Johnson, and JohnVlissides (1997) Pattern Languages of Program Design Edited by James Coplien and Doug Schmidt (1995, ...) …proceedings from the PLoP conferences. http://www.objectmentor.com/
The fundamental pattern Collection-Worker
Transaction patterns Actor-Participant Participant-Transaction Place-Transaction Specific Item - Transaction Transaction - Trans Line Item Transaction - Subsequent Trans Trans Line Item - Sub Trans Ln It Item - Line Item Specific Item - Line Item Item - Specific Item Associate - Other Associate Specific Item - Hierarchical Item
Aggregate patterns Container-Content Container - Container Line Item Group-Member Assembly-Part Compound Part - Part Packet - Packet Component
Plan patterns Plan-Step Plan - Plan Execution Step - Step Execution Plan Execution - Step Execution Plan - Plan Version
Interaction patterns Peer-Peer Proxy - Specific Item Publisher-Subscriber Sender - Pass Through - Receiver Sender-Lookup-Receiver Caller - Dispatcher - Caller Back Gatekeeper-Request-Resource
Gamma: Design Pattern Catalog 3 Creational Patterns Abstract Factory Builder Factory Method Prototype Singleton
4 Structural Patterns Adapter Bridge Composite Decorator Facade Flyweight Proxy
5 Behavioral Patterns Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor
C Foundation Classes 1 List 2 Iterator 3 ListIterator 4 Point 5 Rect
Composite: composes objects into tree structures to represent part-whole hierarchies. …lets clients treat individual objects and compositions uniformly. p. 163
Iterator: provides a way to access the elements of an aggregate sequentially without exposing its underlying representation. … allows mutiple iterations of aggregate to be concurrent