Sunday, July 26, 2009

Object Role Stereotypes

I had a short discussions with my college Jürg last week about that classes in object oriented design (especially DDD or RDD) can be classified regarding their responsibility and behaviour. Neither could I remember the name for that concept nor any of those classifications. Jürg mentioned that this is like stereotypes in UML. I looked it up now and he wasn't wrong. They are called 'Object Role Stereotypes'. Not that Object Role Stereotypes are defined by the UML specification but one could use stereotypes in UML to classify classes by their Object Role Stereotype. Here are the stereotypes that I found:

  • Controller – Controls application execution. Makes decisions and delegates to other classes.
  • Service Provider – Provides a service to other classes. Performs a calculation, computation, or executes business rules.
  • Interfacer – Communicates actions to other layers or systems.
  • Information Holder – Holds facts. Domain classes.
  • Structurer – Maintains relationships between other classes