¿Nombres de clase malolientes? [cerrado
n su experiencia, ¿cuáles son algunas palabras clave "malolientes" en los nombres de clase o función que podrían ser signos de advertencia de un mal diseño orientado a objetos?
He encontrado que las clases que contienen la palabraManager
oBase
a menudo son sospechosos. Por ejemplo, unaFooManger
a menudo indica una pobre encapsulación o un diseño único que es difícil de reutilizar.
A FooBase
class es típicamente una clase base abstracta a la que nunca se espera que se haga referencia directamente en el código de la persona que llama. Solo se usa para compartir alguna implementación de código sin una verdaderaES U relación. Y elBase
class name expone detalles de implementación internos y no refleja un objeto del "mundo real" en un Modelo de dominio.
Funciones que incluyen la palabraAnd
oOr
(p.ej.DoThisAndThat()
oDoThisOrThat()
) son malolientes. La función probablemente carece de cohesión y está tratando de hacer demasiado. Y el nombre expone detalles de implementación internos.