во-первых
Задайте себе вопрос «какова единственная цель этого класса?». Без соблюдения принципа единой ответственности наименование классов и методов становится очень трудным. Если вы не можете ответить на этот вопрос, вам, возможно, придется переосмыслить то, что вы хотите, чтобы класс сделал, и рассмотреть возможность разделения проблем. Это будет проще назвать
во-вторых
У вас есть образец того, как вы называете свои классы? Возможно, попробуйте взглянуть на некоторые распространенные шаблоны именования, например, шаблон, которому будет намного легче следовать после того, как вы обратились к SRP выше. Ваш класс разбирает XML? Попробуйте XMLParser. Анализирует ли он XML, создает модели предметной области для представления входных данных, сохраняет их в БД и затем публикует сообщение об успехе в Twitter? Попробуйте рефакторинг.
в-третьих
Я понимаю, откуда ты и был в подобной ситуации раньше. Возможно, попробуйте дополнить ваш класс какой-то функциональностью, с временным именем для начала. С любой хорошей IDE или помощником по рефакторингу, переименование класса должно быть одним нажатием, поэтому то, что вы называете своим классом изначально, не обязательно должно быть постоянным! Это поможет вам преодолеть OCD-блок и даст подсознанию время для его дальнейшей обработки.
Наконец и чуть не по теме
У меня был момент лампочки в какой-то работе, которую я делал на днях, внедряя некритическую систему, и я тратил справедливое время, играя с разными именами классов и т. Д ... Назовите ваши интерфейсы в соответствии с функциональностью, назовите ваши классы в соответствии с их конкретной реализацией ... Например, у вас может возникнуть искушение иметь IXMLParser и XMLParser, но что произойдет, когда ваш вход изменится на JSON? Вместо этого попробуйте IInputParser, чтобы вы могли создавать конкретные классы XMLParser и JSONParser, которые по-разному реализуют IInputParser.