Principios de diseño

1° principio.
Si tenemos algun pedazo de codigo que varia constantemente, ese comporta
miento debe ser sacado y separado de las cosas que no cambian.
Este concepto constituye la base de casi todos los patrones de diseño.
2° principio
Programar una interface no una implementacion.
3° principio
Favorecer la composicion sobre la herencia
4* principio
Luchar por diseños debilente acoplados entre objetos que interactuan
5* Principio
Las clases deberia ser abiertas para extension, pero cerradas para modificacion.
6* Principio
Depender de una abstraccion, no de una clase concreta
7* principio
Solo habla con tus amigos
Puntos importantes sobres diseño de patrones

pag.32

*
*
*
*
e
*
*
*

Saber OO basico no ayuda a realizar un buen diseño de OO
Un buen diseño es reuzable y mantenible
Los patrones muestran como construir sistemas con cualidades de diseño OO
Los patrones no dan el codigo, estos brinda soluciones generales a problemas d
diseño.
Los patrones no son inventados , son descubiertos.
La mayoria de los patrones abordan las cuestiones de cambio del software
Los patrones proveen un lenguaje compartido que puede maximizar el valor de la
comunicacion con otros desarrolladores.

*****************************Patron de diseño Estrategia*************************
**********
Define una familia de algoritmos, encapsula cada uno, y los hace intercambiable
s. Estrategia permite al algoritmo variar independientemente de los clientes que
lo utilizan.
********************************************************************************
************
*******************************Patron de diseño Observer**************************
**********
Define una a muchas dependencias entre objetos , asi cuando un objeto cambia su
estado, todos los dependientes son notificados y actualizados automaticamente.
********************************************************************************
************
Puntos importantes sobre Observador
*No dependas de un orden especifico de notificacion para tus Observadores
********************************Patron de diseño Decorator************************
**********
Atribuye responsabilidades adicionales a un objeto dinamicamente.Proporcionan
una alternativa flexible a subclases para ampliar la funcionalidad.
********************************************************************************
************
*******************************Patron de diseño Adaptador*************************
**********
Convierte la interface de una clase en otra interface que espera el cliente. Per
mite a clases incompatibles trabajar juntas.
********************************************************************************

******************************************************************************** ************ **************************Patron de diseño metodo de Fabrica********************** ********** Define una interfaz para crear un objecto.Permite a las clases delegar la instanciacion a las subcla ses ******************************************************************************** ************ **************************Patron de diseño Fabrica abstracta********************** ********** Provee una interfaz para crear familias de objetos vinculados o dependientes sin especificar sus clases concretas ******************************************************************************** ************ . ******************************************************************************** ************ *******************************Patron de diseño Fachada*************************** ********** Proporciona una interfaz unificada a un conjunto de interfaces en un subsistema. Fachada define una interfaz de alto nivel que hace que el subsistema más fácil de u sar.************ *******************************Patron de diseño Singleton************************* ********** Asegura que una clase solo tenga una instancia y provee un punto global de acces o a ella. pero permite a las subclases decidir que clase instanciar.