Дискуссия не глупая. Имя класса должно сказать вам, что делает класс. Как только вы добавите менеджер слов (и подобные слова), у класса больше не будет достаточно ограничений, чтобы сказать вам, что он делает. В моем примере «Менеджер» был названием, и в определенных контекстах он хорошо известен ...

шему опыту, какие "вонючие" ключевые слова в именах классов или функций могут быть признаками плохого объектно-ориентированного проектирования?

Я обнаружил, что классы, содержащие словоManager или жеBase часто подозревают. Например,FooManger часто указывает на плохую инкапсуляцию или одноэлементный дизайн, который трудно использовать повторно.

A FooBase Класс, как правило, является абстрактным базовым классом, на который никогда не ожидается прямой ссылки в коде вызывающего. Он используется только для обмена некоторыми реализациями кода безЭТО отношения. ИBase имя класса раскрывает внутренние детали реализации и не отражает объект «реального мира» в модели предметной области.

Функции, которые включают словоAnd или жеOr (например.DoThisAndThat() или жеDoThisOrThat()вонючий Эта функция, вероятно, испытывает недостаток в сплоченности и пытается сделать слишком много. И имя раскрывает внутренние детали реализации.

Ответы на вопрос(22)

Ваш ответ на вопрос