Wednesday, July 9, 2008

Design patterns posting contract

All design patterns share a few properties, keen to describing a good design pattern and following are the properties Design Patterns – Elements of reusable object-oriented Software uses to describe design patterns, and therefore the ones I’ll be using on my posts, since that will be my main reference:

Name: All design patterns need a name and a good name is vital because it will become part of the vocabulary. If it’s the case, a second popular name (Design Pattern calls this “Also known as”).

Intent: What does the design pattern do? What problem does it address?

Motivation: A scenario that can state the importance of the pattern.

Applicability: In which situations can the design pattern be applied? Examples of poor designs the pattern can address and how to recognize those situations.

Structure: Graphical representation of the classes in the pattern. I will NOT be providing such graphical representations. Such images are copyrighted and I do not have permission from the authors to publish them.

Participants: Classes that participate in the design and their responsibilities.

Collaborations: How the participants work to accomplish their responsibilities.

Consequences: Trade-offs and results of using the design.

Implementation: Pitfalls, hints, techniques involved.

Sample code: Code fragments that illustrate how you might implement the design pattern. In my blog I’ll be giving those in C# 2.0 or 3.5 (I’ll point out which framework I’m using each time).

Known uses: Examples from the real world of complex systems that use the pattern.
Related Patterns: Closely related patterns, keen differences and patterns used in the design described.

Later this week, I’ll be posting the Abstract Factory description.


No comments: