En général, il est bon d'éviter les mots comme "handle" ou "processus" dans le cadre des noms de routine et des noms de classe, sauf si vous traitez (par exemple) des descripteurs de fichiers ou (par exemple) des processus Unix. Cependant, les classes abstraites ne savent souvent pas vraiment ce qu'elles vont faire avec autre chose que, disons, le traiter. Dans ma situation actuelle, j'ai un "EmailProcessor" qui se connecte à la boîte de réception d'un utilisateur et en traite les messages. Je ne sais pas vraiment comment donner à ce nom un nom plus précis, même si j'ai remarqué que le style suivant se pose:
- mieux traiter les classes dérivées comme des clients et nommer la classe de base par la partie des fonctionnalités qu'elle implémente? Lui donne plus de sens mais violera is-a. Par exemple, EmailAcquirer serait un nom raisonnable car il acquiert pour la classe dérivée, mais la classe dérivée ne sera acquise pour personne.
- Ou juste un nom vraiment vague car qui sait ce que feront les classes dérivées. Cependant, "Processor" est encore trop général car il effectue de nombreuses opérations pertinentes, comme la connexion et l'utilisation d'IMAP.
Un moyen de sortir de ce dilemme?
Le problème est plus évident pour les méthodes abstraites, dans lesquelles vous ne pouvez pas vraiment répondre à la question "qu'est-ce que cela fait?" parce que la réponse est simplement «tout ce que le client veut».