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 31: Línea 31:


==Toolkits y Frameworks.==  
==Toolkits y Frameworks.==  
*Los '''Frameworks''' son diseños reutilizables, comúnmente formados por varias clases abstractas y algunas clases concretas de componentes que se pueden reutilizar. Definen la arquitectura de la aplicación (o parte de ella).
Los frameworks son diseños reutilizables, comúnmente formados por varias clases abstractas y algunas clases concretas de componentes que se pueden reutilizar.  
*Los '''Toolkits''', en cambio, son independientes de la aplicación, pueden ser reutilizados en dominios totalmente diferentes y no definen la arquitectura.
Definen la arquitectura de la aplicación (o parte de ella).
 
Los Toolkits, en cambio, son independientes de la aplicación, pueden ser reutilizados en dominios totalmente diferentes y no definen la arquitectura.
La principal diferencia entre ambos es que en los frameworks hay inversión de control. Es decir, el usuario del framwork define objetos con los que el framework colabora. Algo que claramente no sucede en Collection por ejemplo.
La principal diferencia entre ambos es que en los frameworks hay inversión de control. Es decir, el usuario del framwork define objetos con los que el framework colabora. Algo que claramente no sucede en Collection por ejemplo.
 
Por otro lado, los framworks pueden verse como algo concreto freente a los patrones de diseños ya que son diseños implementados y no ideas abstractas.
Por otro lado, los frameworks pueden verse como algo concreto freente a los patrones de diseños ya que son diseños implementados y no ideas abstractas.




Línea 48: Línea 47:
Por lo general es difícil encontrar clases abstractas al principio. El humano piensa mejor sobre ejemplos concretos para luego generalizar. Por eso es común que se encuentren más y mejores abstracciones a medida que el dominio se va conociendo con más detalle.
Por lo general es difícil encontrar clases abstractas al principio. El humano piensa mejor sobre ejemplos concretos para luego generalizar. Por eso es común que se encuentren más y mejores abstracciones a medida que el dominio se va conociendo con más detalle.


==Reglas para encontrar.. ==
==Reglas para encontrar protocolos estándares.==  
 
===...protocolos estándares===


1) Introducción de recursión: si un objeto receptor de un mensaje X, al ejecutar el metodo correspondiente realiza operaciones similares sobre sus colaboradores, entonces los mensajes a los colaboradores tambien deberían llamarse X (aún cuando la cantidad de parámetros no coincida). De esta manera el lector del programa notará la conexión.
1) Introducción de recursión: si un objeto receptor de un mensaje X, al ejecutar el metodo correspondiente realiza operaciones similares sobre sus colaboradores, entonces los mensajes a los colaboradores tambien deberían llamarse X (aún cuando la cantidad de parámetros no coincida). De esta manera el lector del programa notará la conexión.
Línea 62: Línea 59:
Por lo general, de esta manera todos los métodos heredados son correctos pero una parte debería ser cambiada en lugar de tener que redefinir todo el método grande.
Por lo general, de esta manera todos los métodos heredados son correctos pero una parte debería ser cambiada en lugar de tener que redefinir todo el método grande.


===...clases abstractas===
 
==Reglas para encontrar clases abstractas==


5) Jerarquias profundas y angostas.
5) Jerarquias profundas y angostas.
Línea 72: Línea 70:
8) Las subclases deben ser especialización.
8) Las subclases deben ser especialización.


===...frameworks===
==Reglas para encontrar frameworks.==


9) dividir clases grandes en más pequeñas.
9) dividir clases grandes en más pequeñas.
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)