Se trata de tener un único rol .
Cada clase debe ser reanudada por un nombre de rol.
Un rol es de hecho un (conjunto de) verbo (s) asociado (s) a un contexto.
Por ejemplo:
El archivo proporciona acceso a un archivo.
FileManager gestiona objetos de archivo.
Datos de retención de recursos para un recurso de un archivo.
ResourceManager retiene y proporciona todos los recursos.
Aquí puede ver que algunos verbos como "administrar" implican un conjunto de otros verbos. Los verbos solos son mejor pensados como funciones que las clases, la mayoría del tiempo. 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 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 juntos para lograr una idea de alto nivel. Tiene un rol, pero implica trabajar con otros roles únicos dentro.
También puede verlo como la organización de una empresa: un CEO no es productivo en el nivel de productividad pura, pero si él no está allí, entonces nada puede funcionar correctamente juntos. Ese es su papel.
Cuando diseñes, identifica roles únicos. Y para cada función, nuevamente vea si no se puede cortar en otras funciones. De esa manera, si necesita cambiar de manera simple la forma en que su Gerente construye los objetos, simplemente cambie la Fábrica e ir pensando en la paz.