Programming Design Patterns
If you are not familiar with the Gang of Four (GoF) patterns, there are many books and sites on the subject. These patterns are a set of logical designs that have been successful and provide a bit of arichtectural building blocks when considering the design of a framework or class library in .NET, Java, etc. They are largely influenced by OO and Java especially. Although these patterns you can see in many frameworks of today. These allow a communication of design so that understanding can be embedded into certain modules of a system.
Here is the list of dofactory.com (GoF site):
| Creational Patterns | |
| Abstract Factory | Creates an instance of several families of classes |
| Builder | Separates object construction from its representation |
| Factory Method | Creates an instance of several derived classes |
| 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 |
| Facade | 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 Resp. | 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 |
We will be writing samples of each pattern and real world usage. In actuality patterns are great and will make you understand programming architecture. However patters at times can be overkill and more deep than necessary and possibly cutting off junior level understanding. The dofactory rates patterns and their frequency of usage or usability. I think that patterns are very important but also a low entry point into code libraries is very important. Simple interfaces to the logical blocks like patterns is common in frameworks like the .NET framework or Java runtime.







