06 de marzo - JoseA4718/Portafolio-I-2020 GitHub Wiki
Se realizó el quiz#2 Un compañero leyó la especificación de la segunda tarea.
Patrones Creacionales:
Abstracta el proceso de instanciación, lo simplificamos. Tratamos de lograr que el sistema en general sea independiente de como son creados y compuestos los objetos. Se enfoca ne encapsular el conocimiento que el sistema usa con las clases concretas. Oculta el proceso como las instancias se crean.
Single ton:
Se augura que exista solo una instancia por clase y crea un punto de acceso global para ella. Define un instance static method que le permite a los clientes acceder a esa única instancia. Sirve solo cuando se ocupa una instancia por clase y solo una linea de acceso a ella.
Abstract Factory:
Crea una interfaz para crear familias relacionadas o objetos dependientes sin especificar su clase concreta. Un cliente hace una solicitud y se encarga de hacer familias de productos. Se tiene una instancia única creada en tiempo de ejecución. Crea objetos de productos con una implementación particular. Hace diferencia entre las FAMILIAS mediante lo que pida el cliente. Ejemplo: librería de interfaz gráfica, que me permite crear botones y labels; esa librería se utiliza para linux como para windows. Probablemente sea abstract factory, porque tendría un boton/label diferente para linux o para windows. Se aplica: una fabrica de carros y diferentes lineas de ensamblaje. El sistema debe ser independiente de cómo los productos son creados, el sistema necesita ser configurado con una de varias familias de productos, cuando queremos dar una librería de productos y revelar solo las interfaces no la implementacion.
Patrones Estructurales
Se trata de cómo las clases y objetos son compuestos para crear estructuras mas grandes. Describe las maneras de componer objetos para hacer nuevas funcionalidades, usando composición de objetos.
Facade:
El propósito es proveernos la interfaz unificadas para un conjunto de interfaces en un subsistema. Define una interfaz de alto nivel que crea un subsistema más fácil de usar. Clientes se comunican con los subsistemas mediante el facade, que los dirige a ellos y les da un manera de usarlo de manera mas fácil.Se aplica cuando se quiere brindar una vista default sencilla que para los clientes sea suficiente para que los clientes interactúen con todos los subsistemas o el sistema en general. Desacopla o disminuye el nivel de dependencia entre los subsistemas y el cliente, y mas bien mejora la dependencia entre el facade y los subsistemas. Provoca bajo acoplamiento entre los clientes y los subsistemas.
Adapter
Nos permite convertir la interfaz de una clase en otra interfaz que el cliente espera. Deja las clases trabajar entre cuando no podrían normalmente por incompatibilidad. Aplica cuando se quiere usar una clase existente pero la interfaz no es compatible con lo que usted necesita.
Patrones de Comportamiento
Se Concentran el algoritmos y asignación de responsabilidades entre objetos, define la intercomunicación entre ellas.
Observer:
Define una dependencia de uno a muchos, si algo cambia en un objeto de interés todos los listener u observers se dan cuenta del cambio. Se manda una comunicación masiva de cambio de estado, o el observador recibe constantemente preguntas de si hubo algún cambio. Cuando aplica, cuando un elemento depende de otro, o que se necesita cambiar una característica especifica apenas ocurre un cambio especifico en el concreteSubject. Este patrón permite comunicaciones masivas. Es complicado que el observer se de cuenta de que es lo que cambió, es difícil tener a todos los observers actualizados.
Tarea Moral: Qué es un patrón de arquitectura? Modern View Controller?