Il s'agit d'avoir un rôle unique .
Chaque classe doit être reprise par un nom de rôle. Un rôle est en fait un (ensemble de) verbe (s) associé (s) à un contexte.
Par exemple :
Fichier fournit un accès au fichier. FileManager gère les objets File.
La ressource contient des données pour une ressource d'un fichier. ResourceManager contient et fournit toutes les ressources.
Ici, vous pouvez voir que certains verbes comme "gérer" impliquent un ensemble d'autres verbes. Les verbes seuls sont mieux considérés comme des fonctions que des classes, la plupart du temps. Si le verbe implique trop d'actions ayant leur propre contexte commun, il devrait alors être une classe en soi.
Donc, l’idée est seulement de vous donner une idée simple de ce que fait la classe en définissant un rôle unique, qui pourrait être l’agrégat de plusieurs sous-rôles (joués par des objets membres ou d’autres objets).
Je construis souvent des classes de gestionnaires qui contiennent plusieurs autres classes. Comme une usine, un registre, etc. Voir une classe de gestionnaires comme une sorte de chef de groupe, un chef d'orchestre qui guide les autres peuples à travailler ensemble pour atteindre une idée de haut niveau. Il a un rôle, mais implique de travailler avec d'autres rôles uniques à l'intérieur. Vous pouvez également voir cela de la manière dont une entreprise est organisée: un PDG n’est pas productif sur le plan de la productivité pure, mais s’il n’y est pas, rien ne peut fonctionner correctement ensemble. C'est son rôle.
Lorsque vous concevez, identifiez des rôles uniques. Et pour chaque rôle, voyez à nouveau s'il ne peut pas être coupé dans plusieurs autres rôles. De cette façon, si vous avez besoin de changer simplement la façon dont votre gestionnaire construit les objets, il vous suffit de changer de fabrique et d’avoir la tranquillité à l’esprit.