A veces termino con una jerarquía de clases donde tengo una clase base abstracta con algunas funcionalidades comunes y un par de clases de implementación que se dividen en dos (raramente más) grupos que deseo tratar de manera diferente en algunos casos. Un ejemplo sería una clase abstracta de nodo de árbol y diferentes implementaciones de rama y hoja donde quiero distinguir ramas y hojas en algún punto.¿Tiene mal olor el tener clases vacías en el medio de una jerarquía de clases?
Estas clases intermedias solo se utilizan para las sentencias "is-a" en el control de flujo y no contienen ningún código, aunque he tenido casos en los que "crecieron" algunos códigos más adelante.
¿Te parece mal? En mi ejemplo de árbol, una alternativa sería agregar isLeaf()
/isBranch()
métodos abstractos a la clase base e implementarlos en las clases intermedias, pero eso no parecía ser mejor para mí, en realidad, a menos que quisiera tener clases que podrían ser múltiples cosas a la vez.
+1 agradable exponerse usted mismo :-) – KLE
@KLE :-) Bueno, gracias por ser mi público.He estado trabajando para mí casi toda mi carrera y a veces puede ser difícil obtener una opinión externa. –
@Hanno Bueno, lo estás haciendo bien, no te preocupes. Solo continúa. ¡Estoy realmente impresionado con tus 158 preguntas! ;-) – KLE