Roles, stereotypes, kinds of objects
I’ve been thinking lately about the ways that different authors explain OOP. I’ve drawn a little diagram that I would like to share with you.
The sources for this are, in no particular order:
- Eric Evans, DDD Reference
- Ivar Jacobson, Object-Oriented Software Engineering
- Peter Coad, Archetypes, Color, and the Domain-Neutral Component
- Rebecca Wirfs-Brock, Characterizing Classes
- Steve Freeman, Nat Pryce, Growing Object-Oriented Software
- Vaughn Vernon, Implementing DDD
Each of these authors has a perspective I find useful. I would love it if there was a comprehensive, single model, but so far I can’t see how to systematize them.
It gets weirder when you start collecting design principles… I might do a mind map of those some day. Somehow I can see how SOLID and GRASP (for instance) are compatible. They are pointing in the same general direction, but from different angles.
May 10th, 2013 at 13:46
Recommended reading on the topic is Wirfs-Brock’s “Object Design” book, expecially introductory chapters on roles, responsibilities and object collaborations:
* http://www.amazon.it/Object-Design-Roles-Responsibilities-Collaborations/dp/0201379430
Also, here’s a quick report on SOLID and GRASP principles I wrote some time ago:
* http://jfranzoi.wordpress.com/2012/04/03/coherent-in-principle/
Ciao!