Edición de «Clase del 18/09/2007 (Diseño Avanzado con Objetos)»
De Cuba-Wiki
Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces publica los cambios para así efectuar la reversión.
Revisión actual | Tu texto | ||
Línea 110: | Línea 110: | ||
La composición puede cambiarse en tiempo de ejecución y la herencia no. | La composición puede cambiarse en tiempo de ejecución y la herencia no. | ||
==Component Library== | |||
Es común que se necesiten implementar los mismos objetos cada vez que se instancia el framework. Sin embargo, es difícil saber a priori cuales serán estos objetos. | Es común que se necesiten implementar los mismos objetos cada vez que se instancia el framework. Sin embargo, es difícil saber a priori cuales serán estos objetos. | ||
Línea 116: | Línea 116: | ||
En el largo plazo solo deberían quedar en la library los objetos que se reutilizan y no son específicos de una única aplicación. | En el largo plazo solo deberían quedar en la library los objetos que se reutilizan y no son específicos de una única aplicación. | ||
==Hot Spots== | |||
A medida que se desarrollan aplicaciones basadas en un framework, hay código que se vuelve a escribir. Estos lugares son “hot spots”. | A medida que se desarrollan aplicaciones basadas en un framework, hay código que se vuelve a escribir. Estos lugares son “hot spots”. | ||
La solución es separar el código que cambia del que no. El que cambia puede encapsularse en objetos, de esta manera se pueden lograr variaciones por composición en lugar de subclasificar y escribir métodos. | La solución es separar el código que cambia del que no. El que cambia puede encapsularse en objetos, de esta manera se pueden lograr variaciones por composición en lugar de subclasificar y escribir métodos. | ||
==Pluggable Objects== | |||
Muchas vece se subclasifica una clase y se redefine un método o muy poco de ella. Lo que termina sucediendo comúnmente es que se crean muchas clases que cambian en forma trivial. Esto incrementa la complejidad del sistema. | Muchas vece se subclasifica una clase y se redefine un método o muy poco de ella. Lo que termina sucediendo comúnmente es que se crean muchas clases que cambian en forma trivial. Esto incrementa la complejidad del sistema. | ||
Línea 127: | Línea 127: | ||
Esto, sin embargo, puede causar que las clases sean más difíciles de entender y usar. | Esto, sin embargo, puede causar que las clases sean más difíciles de entender y usar. | ||
==Fine-Grained Objects.== | |||
Para hacer la library de componentes más reutilizables, lo que se sugiere este patrón es dividir los objetos en otros más pequeños hasta que no tenga sentido la división en el dominio. | Para hacer la library de componentes más reutilizables, lo que se sugiere este patrón es dividir los objetos en otros más pequeños hasta que no tenga sentido la división en el dominio. | ||
Línea 138: | Línea 138: | ||
Usar la herencia para organizar los componentes y la composición para combinarlos en aplicaciones. Los patrones anteriores están para ello. | Usar la herencia para organizar los componentes y la composición para combinarlos en aplicaciones. Los patrones anteriores están para ello. | ||
==Visual Builder== | |||
Con un black-box framework, la aplicación se puede hacer conectando objetos de clases existentes. El comportamiento de la aplicación está determinado entonces por como estos objetos están interconectados. | Con un black-box framework, la aplicación se puede hacer conectando objetos de clases existentes. El comportamiento de la aplicación está determinado entonces por como estos objetos están interconectados. | ||
Línea 150: | Línea 150: | ||
La solución que se propone es crear una herramienta visual que permita llevar a cabo la primera parte de manera sencilla. | La solución que se propone es crear una herramienta visual que permita llevar a cabo la primera parte de manera sencilla. | ||
==Language tools.== | |||
Una vez que creamos un visual builder, podría ser útil contar con inspectores y debuggers especializados para manipular mas fácilmente objetos del framework, que son más específicos del dominio y pueden presentarse de manera mas adecuada. | Una vez que creamos un visual builder, podría ser útil contar con inspectores y debuggers especializados para manipular mas fácilmente objetos del framework, que son más específicos del dominio y pueden presentarse de manera mas adecuada. |