¡Hola a todos!
Cita:
Empezado por roman
...alguna vez te había pedido que profundizaras más en ese concepto por el que abogas y me comentaste que pronto lo harías...
|
Lo siento Román, ahora recuerdo aquella petición. No había profundizado en el tema porque tenía la esperanza de que alguien más propusiera sus ideas al respecto y así construir una enriquecida teoría entre varios desarrolladores; el tema de este hilo me parece propicio para comenzar a calentar motores
. De cualquier forma, el ejemplo que expuse en el segundo enlace mencionado puede resultar útil para comprender mejor la idea.
Cita:
Empezado por roman
...no me queda claro. Si tienes una clase A y las clases B y C derivan de ella, ¿lo que tú propones es poder agregar funcionalidad posterior a la clase A de manera que B y C se beneficien de ello? De ser así, ¿no rompería ello con el principio OOP de que una clase debe estar cerrada para modificación aunque abierta para ampliación?...
|
Técnicamente no se trata de una modificación a la clase A sino a la jerarquía de una o más clases. Se crea una nueva clase
A2 como hija de A, pero usada como nuevo padre directo de B y C. Es decir, A2 se inserta en la jerarquía de clases entre A y B, y entre A y C. Ninguna clase es modificada si entendemos por
modificación la alteración del código fuente que una clase añade, solo les cambiamos el padre a las clases que deseamos hereden nueva funcionalidad. Una especie de
manipulación genética, claro, sin los altos riesgos que eso conlleva en la biología real
.
Cita:
Empezado por roman
...me parece que este concepto que buscas lo tiene JavaScript, ¿lo has visto? Si no mal recuerdo, puedes usar A.proptotype para alterar A y todos sus descendientes...
|
Vaya, no conocía esa característica, será interesante echarle un vistazo.
Cita:
Empezado por roman
...me encantará ver más acerca del tema...
|
Pos échanos la mano, ¿tú como ves este asunto? ¿será bueno estudiarlo a fondo y en su caso proponer algo a DevCo?
Un abrazo insertado.
Al González.