d'abord
Posez-vous la question "quel est le seul but de cette classe?". Sans adhérer au principe de responsabilité unique, il est très difficile de nommer les classes et les méthodes. Si vous ne pouvez pas répondre à cette question, vous devrez peut-être repenser ce que vous voulez que la classe fasse et envisager de séparer les préoccupations. Il sera ainsi plus facile de nommer
Deuxièmement
Avez-vous un modèle pour nommer vos classes? Essayez peut-être d'examiner certains modèles de dénomination courants, par exemple le modèle, qui devient beaucoup plus facile à suivre une fois que vous avez abordé SRP ci-dessus. Votre classe analyse-t-elle XML? Essayez XMLParser. Analyse-t-il XML, crée-t-il des modèles de domaine pour représenter l'entrée, les conserve-t-il dans la base de données, puis publie-t-il un message de réussite sur Twitter? Essayez de refactoring.
Troisièmement
Je comprends d'où vous venez et avez déjà vécu une situation similaire. Essayez peut-être d'étoffer votre classe avec quelques fonctionnalités, avec un nom temporaire pour commencer. Avec n'importe quel bon IDE ou assistant de refactoring, renommer la classe devrait être une action en un clic, donc ce que vous nommez votre classe au départ n'a pas besoin d'être permanent! Cela vous aidera à surmonter votre bloc OCD et donnera à votre subconscient le temps de le traiter un peu plus loin.
Enfin et légèrement hors sujet
J'ai eu un moment d'ampoule dans un travail que je faisais l'autre jour, implémentant un système non critique, et je passais un bon moment à jouer avec différents noms de classes, etc. classes en fonction de leur exécution spécifique ... Par exemple, vous pourriez être tenté d'avoir IXMLParser et XMLParser, mais que se passe-t-il lorsque votre entrée passe à JSON? Essayez plutôt IInputParser, de cette façon, vous pouvez créer des classes concrètes XMLParser et JSONParser qui implémentent toutes deux IInputParser de différentes manières.