Please enable JavaScript.
Coggle requires JavaScript to display documents.
(Patrones Creacionales :star: (Se centran en resolver problemas acerca de…
Patrones Creacionales :star:
Se centran en resolver problemas acerca de cómo crear instancias de las clases de nuestra aplicación. .
Abstract Factory :check:
permite trabajar con objetos de diferentes familias de manera que no se mezclen entre sí. De esa manera se consigue la el tipo de familia que se esté utilizando sea transparente.
Cliente:
Entidad que llamará a la fábrica adecuada que necesite para crear uno de los objetos que provee dicha factoría.
AbstractFactory:
Definición de la interfaz que usarán las diferentes factorías.
Concrete Factories:
Aquí se representarán las diferentes familias de productos.
Abstract Product
: Definirá las interfaces para la familia de productos genéricos.
Concrete Product:
Se encargará de la implementación específica de los diferentes productos.
Builder
abstrae el proceso de creación de los objetos complejos, centralizandolo en pun punto.
Factory Method
centraliza en una clase constructora la creación de objetos de un tipo determinado. Ocultando al invocante la necesidad de indicar un tipo u otro.
Prototype
crea un objeto a partir de la clonación de un objeto ya existente.
Singleton
garantiza que solo exista una instancia de un objeto y que la forma de acceder a dicha instancia sea general.
Patrones Estructurales : :star:
Se refieren a como las clases y los objetos son organizados para conformar estructuras más complejas.
:check:
Composite:
sirve para construir objetos que estén formados por tros objetos más simples, pero siempre similares entre sí, gracias a la composición recursiva.
Client:
Manipula objetos atravez de la interfaz proporcionada por Component.
Component:
Declara la interfaz para los objetos de la composicion, es la interfaz de acceso y manipulacion de los componentes hijo e implementa algunos comportamientos por defecto.
Composite:
Define el comportamiento de los componentes compuestos, almacena a los hijos e implementa las operaciones de manejo de los componentes.
Leaf:
Definen comportamientos para objetos primitivos del compuesto.
Decorator:
facilita la tarea de añadir dinámicamente funcionalidades a un Objeto. De este modo, elimina de necesidad de crear clases que fuesen heredando de la primera, incorporando no sólo la nueva funcionalidad, sino también otras nuevas y asociarlas a ella.
Component:
Define la interface de los objetos a los que se le puede adicionar responsabilidades dinamicamente.
ConcreteComponent:
Define el objeto al que se le puede adicionar una responsabilidad.
Decorator:
Mantiene una refeencia al objeto Component y define una interface de acuerdo con la interface de Component.
ConcreteDecorator:
Es el encargado de sumar la responsabilidad al componente. Puede haber varipos ConcreteDecorator.
Adapter:
convierte la interfaz de una clase en la que otra necesita, permitiendo que clases con interfaces incompatibles trabajen juntas.
Client:
Es el principal agente en la formación de objetos para la interfaz Target.
Target
: Interfaz del dominio específico que usa el Client.
Adaptee:
Es la interfaz ya existente que necesita adaptarse.
Adapter:
Es quien adapta la interfaz del Adaptee a la interfaz Target.
Proxy:
tiene como propósito proporcionar un intermediario para controlar el acceso a un objeto.
Proxy:
Mantiene una referencia al objeto real, mientras que proporciona una interfz idéntica a la del objeto real (Real Subject) y controla el acceso a este objeto, siendo responsable de crearlo y borrarlo.
Subject:
Define una interfaz común para el proxy y el objeto real.
RealSubject:
Clase del objeto real que el proxy representa.
Patrones de Comportamiento :star:
Se centran en los algoritmos y en la asignación de responsabilidades entre los objetos.
Command:
permite realizar una operación sobre un objeto sin conocer realmente las instrucciones de esta operación ni el receptor real de la misma.
Command:
Declara la interface para la ejecucion de la operacion.
ConcreteCommand:
Define la relación entre el objeto Receiver y una acción.
Client:
Crea un objeto ConcreteCommand y lo relaciona con su Receiver.
Invoker:
Envía las solicitudes al objeto Command.
Receiver:
Es la clase que gestiona la ejecución de las operaciones asociadas a la solicitud. Cualquier clase puede ser receptora.
Iterator:
es uno de los mayores exponentes de los patrones de comportamient. Presenta la interfaz que declara los métodos necesarios para acceder, de forma secuencial, a los objetos de una colección. :check:
Iterator:
Interfaz que se usará para recorrer el contenedor y acceder a los objetos o elementos que albergue, de tal modo que no sea necesario conocer los detalles de la estructura, siendo capaces de manejarla de todos modos.
ConcreteIterator
: Clase que implementa la interfaz propuesta por el Iterator. Mantendrá la posición actual en el recorrido de la estructura almacenándola en el aggregate, sabiendo así cual será el siguiente objeto en el recorrido.
Aggregate:
Es la interfaz que se usará para la fabricación de iteradores.
ConcreteAggregate:
Implementa la estructura de datos y el método de fabricación de iteradores que crea un iterador específico para su estructura.
Observer
define una interacción entre objetos, de manera que cuando uno de ellos cambia su estado, el Observer se encarga de notificar este cambio a los demás.
Subject:
Es el que conoce a sus observadores, proporcionando una Interfaz para que se suscriban los objetos de tipo Observer.
Observer:
Define la interfaz para actualizar los objetos a los que se deben notificar los cambios en el objeto Subject.
ConcreteSubject:
Guarda el estado de interés para los objetos ConcreteObserver y envia una notificación a sus observadores cuando cambia su estado.
ConcreteObserver:
Mantiene una referencia a un objeto ConcreteSubject, guardando el estado que debería permanecer sincronizado con el objeto observado, además de implementar la interfaz Observer para mantener su estado consistente con el objeto observado.
Strategy:
determina la forma de implementar el intercambio de mensajes entre diferentes objetos que realizan diferentes tareas, pero que comparten elementos comunes.
Context:
Actor que necesita de las operaciones concretas de las diferentes estrategias, referenciando a estas últimas. Puede definir una interfaz intermedia que facilite el acceso a sus datos propios por parte de la estrategia necesaria, en caso de necesitar el intercambio de información entre el Context y diche estrategia.
Strategy:
Es la interfaz común para todos los algoritmos implementados en las diferentes estrategias. Será lo que use el Context para invocar a la estrategia concreta que necesite.
ConcreteStrategy:
Clases donde se implementan los algoritmos necesarios, usando para ello la interfaz Strategy.