Хотя это из Framework Design Guidelines (для .NET), я думаю, что это в равной степени относится к любому языку.Рекомендую:
Избегайте именования базового класса с помощью суффикса Base, если этот класс предназначен для использования в общедоступных API. Если библиотека предоставляет базовый класс в качестве возвращаемого типа или типа параметра, он не должен иметь базовый суффикс.
В общем, если класс является общедоступным (или даже частным, хотя в этом случае риск меньше), и вы называете его PersonBase
, подразумевается, что это базовый класс.Если в какой-то момент в будущем иерархия классов будет подвергнута рефакторингу и PersonBase
больше не будет базовым классом, вы захотите переименовать PersonBase
во что-то другое, что, скорее всего, приведет к критическим изменениям для любого потребительского кода.
Я бы просто назвал класс Person
и позволил бы любым производным классам использовать более конкретные имена.Я думаю, что Person
очень ясен и указывает на то, что он используется в качестве общего (неспецифического) человека.