Edición de «Clase del 18/09/2007 (Diseño Avanzado con Objetos)»

De Cuba-Wiki
Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.

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===
==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===
==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===
==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.===
==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===
==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.===
==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.
Ten en cuenta que todas las contribuciones a Cuba-Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Cuba-Wiki:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)