Design Patterns
Download PDF
Overview
Design patterns provide a fundamental foundation to building maintainable and scalable software. Understanding how the patterns work, why they provide a benefit, and when to use them helps to ensure that software is built from reusable object oriented components. This Refcard provides a quick reference to the original 23 Gang of Four design patterns, as listed in the book Design Patterns: Elements of Reusable Object-Oriented Software. Each pattern includes class diagrams, explanation, usage information, and a real world example.
About the Author
The product of two computer programmers, Jason McDonald wrote his first application in BASIC while still in elementary school and has been heavily involved in software ever since. He began his software career when he found himself automating large portions of one of his first jobs. Finding his true calling, he quit the position and began working as a software engineer for various small companies where he was responsible for all aspects of applications, from initial design to support. He has roughly 11 years of experience in the software industry and many additional years of personal software experience during which he has done everything from coding to architecture to leading and managing teams of engineers. Through his various positions he has been exposed to design patterns and other architectural concepts for years. Jason is the founder of the Charleston SC Java Users Group and is currently working to help found a Charleston chapter of the International Association of Software Architects
Personal Blog
Charleston SC Java Users Group
http://www.charlestonscjug.org



Comments
Brian Hainey replied on Wed, 2008/06/18 - 5:33am
Hi
I'm disappointed that some of the diagrams in this RefCard do not strictly use UML notation.Take the 'Chain of Responsibility' diagram. The relationship between concrete handlers and the handler interface is operation inheritance so a UML implements relationship should be used. The diagram in the card uses the same relationship as that between the client and the Handler interface i.e. a directed association. Also, the arrowheads on the directed association relationships appear to have filled arrow heads and not open arrow heads as they should be if UML notation is used. The diagrams for other patterns in the refcard do show inheritance correctly but again the directed associations have filled arrow heads.
If the intention was not to stick strictly to UML notation then a statement should be made that faux UML is being used otherwise, as a matter of urgency, the diagrams should be corrected.
BrianJason McDonald replied on Wed, 2008/06/18 - 10:22am
in response to: bh95582
Sorry about that Brian - these were oversights and we are working to correct them now. Faux anything was never the goal...
The Chain of Responsibility and a couple aggregation symbols are strictly errors. As for the difference between the aggregation versus composition symbols, the distinction is pretty subtle but there are a couple places that it was incorrect. These are also being corrected right now.
Once the new copy comes out, please let us know if you see any problems with it.
Brian Hainey replied on Wed, 2008/06/18 - 10:38am
OK
Let me know when the new version is available.
Brian
Jill Tomich replied on Wed, 2008/06/18 - 12:55pm
in response to: bh95582
Hi Brian,
The Design Patterns refcard has been updated, and is now available. To access it, hit your download link again. If you have any problems, please let me know by emailing me at refcardz@dzone.com.
Thanks again for the feedback.
-- Jill
Jason McDonald replied on Wed, 2008/06/18 - 7:53pm
There are a lot more comments here:
http://refcardz.dzone.com/announcements/design-patterns
MaxHeadroom replied on Tue, 2008/07/08 - 3:38am
in response to: finn0013
MaxHeadroom replied on Tue, 2008/07/08 - 4:12am
Matthew Schmidt replied on Tue, 2008/07/08 - 8:31am
in response to: MaxHeadroom