Se trata de tener un rol único .
Cada clase debe resumirse con un nombre de rol. Un rol es de hecho un (conjunto de) verbo (s) asociado (s) con un contexto.
Por ejemplo :
Archivo proporciona acceso a un archivo. FileManager gestiona objetos File.
Datos de retención de recursos para un recurso de un archivo. ResourceManager mantiene y proporciona todos los recursos.
Aquí puede ver que algunos verbos como "administrar" implican un conjunto de otros verbos. Los verbos solos se consideran mejor como funciones que las clases, la mayoría de las veces. Si el verbo implica demasiadas acciones que tienen su propio contexto común, entonces debería ser una clase en sí misma.
Por lo tanto, la idea es solo permitirle tener una idea simple de lo que hace la clase al definir un rol único, que podría ser el agregado de varios sub-roles (realizados por objetos miembros u otros objetos).
A menudo construyo clases de Manager que tienen varias otras clases diferentes. Como una Fábrica, un Registro, etc. Vea una clase de Gerente como una especie de jefe de grupo, un jefe de orquesta que guía a otras personas a trabajar juntas para lograr una idea de alto nivel. Él tiene un rol, pero implica trabajar con otros roles únicos en su interior. También se puede ver cómo se organiza una empresa: un CEO no es productivo en el nivel de productividad pura, pero si no está allí, entonces nada puede funcionar correctamente juntos. Ese es su papel.
Cuando diseñe, identifique roles únicos. Y para cada rol, nuevamente vea si no se puede cortar en varios otros roles. De esa manera, si necesita cambiar fácilmente la forma en que su Gerente construye objetos, simplemente cambie la Fábrica y vaya con tranquilidad.