Implementing GOF design patterns in C#
Creational design patterns are design patterns that deal with object creation mechanisms, trying to create objects in a manner suitable to the situation.
Creates an instance of several families of classes
Separates object construction from its representation
Creates an instance of several derived classes
Avoid expensive acquisition and release of resources by recycling objects that are no longer in use
A fully initialized instance to be copied or cloned
A class of which only a single instance can exist
Structural Design Patterns are design patterns that ease the design by identifying a simple way to realize relationships between entities.
Match interfaces of different classes
Separates an object's interface from its implementation
A tree structure of simple and composite objects
Add responsibilities to objects dynamically
A single class that represents an entire subsystem
A fine-grained instance used for efficient sharing
Restricts accessor/mutator access
An object representing another object
Behavioral design patternsare are design patterns that identify common communication patterns between objects and realize these patterns. By doing so, these patterns increase flexibility in carrying out this communication.
A way of passing a request between a chain of objects
Encapsulate a command request as an object
A way to include language elements in a program
Sequentially access the elements of a collection
Defines simplified communication between classes
Capture and restore an object's internal state
Designed to act as a default value of an object
A way of notifying change to a number of classes
Alter an object's behavior when its state changes
Encapsulates an algorithm inside a class
Defer the exact steps of an algorithm to a subclass
Defines a new operation to a class without change