Mapa mental
Patrones de diseño
Contenido del mapa
Patrones de diseño
Básico
- Interfaz
- se puede usar para diseñar un conjunto de clases de proveedores de servicios que ofrecen el mismo servicio para que un objeto de cliente pueda utilizar diferentes clases de objetos del proveedor de servicios de una forma sin tener que modificar la implementación del cliente
- Clase principal abstracta
- Útil para diseñar un marco para la implementación coherente de la funcionalidad común a un conjunto de clases relacionadas
- métodos privados
- Proporcione una forma de diseñar un comportamiento de clase para que no se permita a objetos externos tener acceso al comportamiento que está destinado solo para el uso interno.
- métodos de acceso
- Proporcionar una manera de obtener acceso al estado de un objeto mediante métodos específicos. Este enfoque desaconseja que diferentes objetos de cliente accedan directamente a los atributos de un objeto , lo que resulta en una estructura de clases más mantenible.
- gestor de datos constantes
- Útil para diseñar un repositorio centralizado y fácil de mantener para los datos constantes de una aplicación.
- objeto inmutable
- Se utiliza para garantizar que el estado de un objeto no se puede cambiar. Se puede utilizar para garantizar que el acceso simultáneo a un objeto de datos por parte de varios objetos de cliente no da lugar a condiciones de carrera.
- monitor
- Una forma de diseñar un objeto de aplicación para que no produzca resultados impredecibles cuando más de un subproceso intenta acceder al objeto al mismo tiempo en un entorno multiproceso
- Interfaz
Creacional
- método de fábrica
- Expone un método de creación, delegando en las subclases la implementación de este método.
- fábrica abstracta
- Nos provee una interfaz que delega la creación de un conjunto de objetos relacionados sin necesidad de especificar en ningún momento cuáles son las implementaciones concretas.
- instancia única
- limita a uno el número de instancias posibles de una clase en nuestro programa, y proporciona un acceso global al mismo.
- prototipo
- Permite la creación de objetos basados en «plantillas». Un nuevo objeto se crea a partir de la clonación de otro objeto.
- constructor
- Separa la creación de un objeto complejo de su estructura, de tal forma que el mismo proceso de construcción nos puede servir para crear representaciones diferentes.
- método de fábrica
Coleccionable
- compuesto
- Permite que tanto objetos individuales como objetos compuestos se traten uniformemente.
- iterador
- Permite a un cliente acceder al contenido de un objeto agregado (colección de objetos) de forma secuencial , sin tener ningún conocimiento acerca de la representación interna de su contenido.
- peso mosca
- La información común intrínseca e invariable y las partes variables de una clase se separan en dos clases, lo que permite ahorrar en términos del uso de memoria y la cantidad de tiempo necesaria para la creación de un gran número de sus instancias.
- visitante
- Permite definir una operación en una colección de diferentes objetos sin cambiar las clases de objetos en los que opera.
- compuesto
Concurrencia
- sección crítica
- Forma más estricta de supervisión. Se utiliza para bloquear el código en el nivel de clase para evitar que varios subprocesos ejecuten el código bloqueado incluso en dos instancias diferentes de la misma clase.
- orden de bloqueo persistente
- Recomienda identificar y documentar un orden bien definido de bloqueo de objetos que se debe seguir de forma coherente durante el diseño y el desarrollo de una aplicación para eliminar la posibilidad de que se produzca un bloqueo
- suspensión guardada
- Recomienda diseñar un método para suspender su ejecución hasta que el objeto se encuentre en un estado que haga que se cumpla una condición previa necesaria.
- bloqueo de lectura y escritura
- Recomienda permitir operaciones de lectura simultáneas a la vez que evita actualizaciones simultáneas de los valores de un recurso de aplicación para mejorar la capacidad de respuesta general de la aplicación.
- sección crítica
Estructural
- decorador
- Permite añadir funcionalidad extra a un objeto (de forma dinámica o estática) sin modificar el comportamiento del resto de objetos del mismo tipo.
- adaptador
- Permite a dos clases con diferentes interfaces trabajar entre ellas, a través de un objeto intermedio con el que se comunican e interactúan.
- cadena de responsabilidad
- Evita acoplar un objeto emisor (solicitud) a un objeto receptor . Permite que un objeto emisor pase su solicitud a lo largo de una cadena de objetos sin saber qué objeto gestionará realmente la solicitud.
- fachada
- Una facade (o fachada) es un objeto que crea una interfaz simplificada para tratar con otra parte del código más compleja, de tal forma que simplifica y aísla su uso. Un ejemplo podría ser crear una fachada para tratar con una clase de una librería externa.
- apoderado
- Permite utilizar un objeto independiente como sustituto para proporcionar acceso controlado a un objeto que no es accesible por medios normales.
- puente
- Desacopla una abstracción de su implementación, para que las dos puedan evolucionar de forma independiente.
- proxy virtual
- Facilita el mecanismo para retrasar la creación de un objeto hasta que se necesite de forma transparente para sus objetos del cliente.
- proxy de conteo
- Cuando hay una necesidad de realizar operaciones de suplementarias como el registro y el recuento antes o después de una llamada al método en un objeto, se recomienda encapsular la funcionalidad suplementaria en un objeto independiente.
- ejecutor agregado
- Recomienda que cuando se cree una instancia de un objeto agregado , todas sus variables miembro que representan el conjunto de objetos constitutivos también se inicialicen . En otras palabras, siempre que se cree una instancia de un objeto de agregado , debe estar construido en su totalidad.
- lanzamiento explícito de objetos
- Se recomienda que cuando un objeto sale de ámbito, todos los recursos del sistema vinculados a ese objeto deben liberarse de forma oportuna.
- caché de objetos
- Almacena los resultados de una llamada de método en un objeto en un repositorio . Cuando los objetos cliente invocan el mismo método , en lugar de acceder al objeto real, los resultados se devuelven al objeto cliente desde el repositorio . Esto se hace principalmente para lograr un tiempo de respuesta más rápido.
- decorador
Comportamiento
- Mando
- Permite encapsular una solicitud en un objeto que proporciona control sobre la cola de solicitudes, la secuenciación y de la anulación
- mediador
- Encapsula los detalles de la comunicación objeto a objeto directa entre un conjunto de objetos en un objeto independiente (mediador) . Esto elimina la necesidad de que estos objetos interactúen entre sí directamente.
- menmento
- Permite capturar y almacenar el estado de un objeto. El objeto se puede volver a poner en este estado (anterior), cuando sea necesario.
- observador
- Promueve un modelo de comunicación editor-suscriptor cuando hay una dependencia de uno a varios entre objetos de modo que cuando un objeto cambia de estado, se notifica a todos sus dependientes para que puedan actualizar su estado.
- interprete
- Útil cuando el objetivo es proporcionar a un programa del cliente o a un usuario la capacidad de especificar operaciones en un lenguaje simple. Ayuda a interpretar las operaciones especificadas mediante un idioma, utilizando su gramática. Más adecuado para idiomas con gramática sencilla.
- estado
- Permite que el comportamiento específico del estado de un objeto se encapsule en forma de un conjunto de objetos de estado. Con cada comportamiento específico de estado asignado a un objeto de estado específico, el objeto puede cambiar su comportamiento configurándose con un objeto de estado apropiado.
- estrategia
- Permite que cada una de las familias de algoritmos relacionados se encapsule en un conjunto de subclases diferentes (objetos de estrategia ) de una superclase común. Para que un objeto utilice un algoritmo, el objeto debe configurarse con el objeto de estrategia correspondiente. Con esta disposición, la implementación de algoritmos puede variar sin afectar a sus clientes.
- objeto nulo
- Proporciona una forma de encapsular el (normalmente no hacer nada) comportamiento de un tipo de objeto determinado en un objeto nulo independiente. Este objeto se puede utilizar para proporcionar el comportamiento predeterminado cuando no hay ningún objeto del tipo específico disponible.
- autenticador de objetos
- Resulta útil cuando el acceso a un objeto de aplicación está restringido y requiere un objeto de cliente para proporcionar las credenciales de autenticación adecuadas. Utiliza un objeto independiente con la responsabilidad de verificar los privilegios de acceso de diferentes objetos de cliente en lugar de mantener esta responsabilidad en el objeto de aplicación
- registro de atributos comunes
- Proporciona una forma de diseñar un repositorio para almacenar el estado transitorio común de una aplicación.
- Metodo de plantilla
- Cuando hay un algoritmo que se podría implementar de varias maneras, el patrón de plantilla permite mantener el contorno del algoritmo en un método independiente (Template Method) dentro de una clase (Template Class), dejando las implementaciones específicas de este algoritmo a diferentes subclases. En otras palabras, el patrón Método de plantilla se utiliza para mantener la parte invariable de la funcionalidad en un lugar y permitir que las subclases proporcionen la implementación de la parte variante.
- Mando
Información
- Descripción
- Mapa Mental sobre Patrones de diseño, creado por Valentina Velandia el 16/02/2020.
- Creado por
- Valentina Velandia
- Visitas
- 0
- Valoración