Загалом, добре уникати таких слів, як "обробляти" або "обробляти", як частина імен рутини та імен класів, якщо ви не маєте справу з (наприклад) ручками файлів або (наприклад) unix-процесами. Однак абстрактні класи часто насправді не знають, що вони збираються робити з чимось, окрім, скажімо, обробки. У моїй теперішній ситуації у мене є "EmailProcessor", який входить у папку "Вхідні" та обробляє повідомлення з неї. Мені не зовсім зрозуміло, як назвати це більш точне ім'я, хоча я помітив, що виникає таке питання стилю:
- краще ставитися до похідних класів як до клієнтів і називати базовим класом частину функціоналу, який він реалізує? Надає йому більше значення, але буде порушувати is-a. Наприклад, EmailAcquirer було б розумним ім'ям, оскільки він набуває для похідного класу, але похідний клас не придбає ні для кого.
- Або просто дуже розпливча назва, оскільки хто знає, що робитимуть похідні класи. Однак "Процесор" все ще занадто загальний, оскільки він робить багато відповідних операцій, наприклад, вхід у систему та використання IMAP.
Будь-який вихід з цієї дилеми?
Проблема більш очевидна для абстрактних методів, в яких реально не можна відповісти на питання "що це робить?" тому що відповідь просто "все, що хоче клієнт".