Malos olores: Herencia


La relación entre una clase y su subclase suele comenzar siendo simple pero se va volviendo más complicada con el paso del tiempo. Una subclase a menudo depende de su generalización más estrechamente que una clase ajena, pero esto puede ser demasiado.

La clave es decidir entre lo que una clase es y lo que una clase tiene. La estructura de una clase suele comenzar con herencia y con el paso del tiempo se mueve más hacia la composición.

Los malos olores emergentes por un mal uso de la herencia son:

Refused Bequest

Síntomas

Qué hacer

Recompensas

Contraindicaciones

A veces un caso de Refused Bequest es usado para prevenir una explosión de nuevos tipos.

Inappropiate Intimacy (Subclass Form)

Síntomas

Una clase accede a partes internas que deberían ser privadas de su generalización. Si esto ocurre entre clases separadas, se conoce como General Form.

Qué hacer

Recompensas

Lazy Class

Síntomas

Una clase apenas tiene comportamiento. Sus generalizaciones, subclases o clientes realizan todo el trabajo aparentemente asociado y no hay suficiente comportamiento en la clase que justifique su existencia.

Qué hacer

Recompensas

Contraindicaciones

A veces una Lazy Class existe para comunicar una intención. Debes buscar el equilibrio entre comunicación y simplicidad.

2019-03-20
Escrito por Samuel de Vega.
Etiquetas