Varios patrones de diseño comunes en Java (tutorial de patrones de diseño de Java para principiantes)
2. Modo de construcción: Separe la representación interna del producto del proceso de generación del producto, de modo que un proceso de construcción pueda generar objetos de producto con diferentes representaciones internas. El modo de construcción permite que la apariencia interna del producto cambie de forma autónoma y los clientes no necesitan conocer los detalles de la composición interna del producto. El modo de construcción puede forzar un proceso de construcción paso a paso.
3. Patrón de método de fábrica: la clase de fábrica central ya no es responsable de la creación de todos los productos, sino que deja el trabajo de creación específico a las subclases, convirtiéndose en una función de fábrica abstracta, solo responsable de dar clases de fábrica específicas. Una interfaz que debe implementarse sin tocar los detalles de qué clase de producto se debe crear una instancia.
4. Modo de modelo original: especifique el tipo de objeto que se creará proporcionando un objeto prototipo y luego cree más objetos del mismo tipo copiando este objeto prototipo. El modo de modelo original permite agregar o restar categorías de productos dinámicamente. No es necesario que las categorías de productos tengan una jerarquía predeterminada y el patrón del modelo original funciona con cualquier jerarquía. La desventaja es que cada clase debe estar equipada con un método de clonación.
5. Modo singleton: el modo singleton garantiza que una clase tenga solo una instancia, se instancia a sí misma y proporciona este modo singleton de instancia a todo el sistema. El patrón singleton solo debe usarse cuando existe un verdadero requisito de "instancia única".
6. Modo adaptador (transformador): convierte la interfaz de una clase en otra interfaz esperada por el cliente, de modo que dos clases que no pueden funcionar juntas debido a interfaces no coincidentes puedan trabajar juntas. La clase de adaptación puede devolver instancias apropiadas al cliente según los parámetros.
7. Modo puente: desacopla la abstracción y la implementación para que puedan cambiar de forma independiente, es decir, cambiar su asociación fuerte a asociación débil, es decir, utilizar relaciones de combinación/agregación para reemplazar las relaciones de herencia, permitiéndoles cambiar. independientemente.
8. Modo de composición: el modo de composición organiza los objetos en una estructura de árbol, que se puede utilizar para describir la relación entre el todo y sus partes. El patrón compuesto es un patrón que se ocupa de estructuras de árbol de objetos. El modelo integral expresa la relación entre las partes y el todo en una estructura de árbol. El patrón de composición permite a los clientes tratar objetos componentes individuales como objetos compuestos compuestos de ellos.
9. Patrón decorador (patrón decorador): El patrón decorador extiende la funcionalidad de los objetos de una manera que es transparente para el cliente. Esta es una alternativa a la herencia y proporciona más funcionalidad que la herencia. Agregue funciones dinámicamente a un objeto y estas funciones se pueden revocar dinámicamente. Además de una gran cantidad de funciones producidas por permutaciones y combinaciones de algunas funciones básicas.
10. Modo fachada: La comunicación externa con los subsistemas debe realizarse a través de un objeto de fachada unificado. El modo fachada proporciona una interfaz de alto nivel que hace que el subsistema sea más fácil de usar. Cada subsistema tiene solo una clase de fachada, y esta clase de fachada tiene solo una instancia, es decir, es un patrón singleton. Pero todo el sistema puede tener múltiples clases de fachada.
11. Modo disfrute: Ligero se refiere al peso más liviano en el boxeo. El modo de metacompartición admite de manera eficiente una gran cantidad de objetos detallados de una manera * * * compartida. La clave del disfrute en el modelo de metadisfrute es distinguir entre estados internos y externos. El estado interior se almacena en el elemento del disfrute y no cambia cuando cambian las circunstancias. El estado externo cambia con los cambios en el medio ambiente. Los estados externos no pueden afectar a los estados internos, son independientes entre sí. Distinguir el estado que * * * se puede disfrutar y el estado que * * * no se puede disfrutar de la clase regular, y excluir de la clase regular el estado que * * * no se puede disfrutar. El cliente no puede crear * * * objetos de disfrute directamente y debe utilizar un objeto de fábrica para crear * * * objetos de disfrute. Disfrutar del metapatrón reduce en gran medida la cantidad de objetos en la memoria.
12. Modo proxy: el modo proxy proporciona un objeto proxy para un objeto, y el objeto proxy controla la referencia al objeto fuente.
Agencia es cuando una persona u organización actúa en nombre de otra persona u organización. En algunos casos en los que el cliente no quiere o no puede hacer referencia a un objeto directamente, un objeto proxy puede actuar directamente como intermediario entre el cliente y el objeto de destino. Los clientes no pueden distinguir entre objetos de tema proxy y objetos de tema reales. Es posible que el patrón de proxy no conozca el objeto proxy real, sino que solo contenga una interfaz del objeto proxy. En este momento, el objeto proxy no puede crear un objeto proxy y el objeto proxy debe ser creado y pasado por otras funciones del sistema.
13. Patrón de Cadena de Responsabilidad: En el patrón de Cadena de Responsabilidad, muchos objetos están conectados por la referencia de cada objeto a su siguiente directorio de inicio.
Levántate formando una cadena. La solicitud se pasa a lo largo de esta cadena hasta que un objeto de la cadena decide manejar la solicitud. El cliente no sabe qué objeto de la cadena manejará en última instancia esta solicitud, y el sistema puede reorganizar dinámicamente la cadena y asignar responsabilidades sin afectar al cliente. El cuidador tiene dos opciones: asumir la responsabilidad o pasarla a la siguiente familia. En última instancia, es posible que ningún objeto destinatario acepte una solicitud.
14. Modo de comando: el modo de comando encapsula solicitudes u operaciones en un objeto. El patrón de comando separa la responsabilidad de emitir comandos de la responsabilidad de ejecutarlos y los delega a diferentes objetos. El modo de comando permite que el solicitante y el remitente sean independientes, de modo que el solicitante no necesita conocer la interfaz del receptor, y mucho menos cómo se recibe la solicitud, si se realiza la operación, cuándo y cómo. El sistema admite la revocación de comandos.
15. Modo intérprete: Dado un idioma, el modo intérprete puede definir una representación de su gramática y proporcionar un intérprete. Los clientes pueden utilizar este intérprete para interpretar oraciones en este idioma. El patrón Interpreter describe cómo interpretar estas declaraciones utilizando el diseño de patrones después de tener una sintaxis simple. El lenguaje mencionado en el patrón Intérprete se refiere a cualquier combinación que pueda ser interpretada por cualquier objeto intérprete. En modo intérprete, es necesario definir una jerarquía de clases de comando que representen la gramática, es decir, una serie de reglas de combinación. Cada objeto de comando tiene un método de interpretación que representa la interpretación del objeto de comando. Cualquier permutación de objetos en la jerarquía de objetos de comando es un lenguaje.
16. Subpatrón iterativo: El subpatrón iterativo permite el acceso secuencial a elementos de un agregado sin exponer la representación interna del agregado. Una colección de múltiples objetos se llama agregado. Un objeto agregado es un objeto contenedor que puede contener un grupo de objetos. El subpatrón de iteración encapsula la lógica de iteración en un subobjeto separado, que está separado del propio agregado. El subpatrón iterativo simplifica la interfaz para agregados. Cada objeto agregado puede tener uno o más subobjetos de iteración, y el estado de iteración de cada iteración puede ser independiente entre sí. El algoritmo iterativo se puede cambiar independientemente del rol de agregación.
17. Modo mediador: El modo mediador encapsula la forma en que interactúan una serie de objetos para que estos objetos no tengan que interactuar entre sí explícitamente. para que puedan acoplarse libremente. Cuando las interacciones entre algunos objetos cambian, no afecta inmediatamente las interacciones entre otros objetos. Asegúrese de que estos efectos se puedan cambiar independientemente uno del otro. Los modelos de mediación convierten interacciones de muchos a muchos en interacciones de uno a muchos. El modelo mediador abstrae el comportamiento y la colaboración de los objetos, manejando las interacciones entre objetos y otros objetos individualmente en acciones a pequeña escala.
18. Modo Memento: El objeto memo es un objeto que se utiliza para almacenar una instantánea del estado interno de otro objeto. El propósito del patrón Memento es capturar el estado de un objeto, externalizarlo y almacenarlo sin romper la encapsulación para que el objeto pueda restaurarse al estado almacenado en un momento apropiado en el futuro.
19. Patrón de observador: El patrón de observador define dependencias con múltiples equipos, permitiendo que múltiples objetos de observador monitoreen un objeto sujeto al mismo tiempo. Cuando el estado de este objeto de tema cambia, se notifica a todos los objetos observadores para que puedan actualizarse automáticamente.
20. Patrón de estado: El patrón de estado permite que un objeto cambie su comportamiento cuando cambia su estado interno. Este objeto parece haber cambiado de clase. El patrón de estado envuelve el comportamiento del objeto bajo estudio en diferentes objetos de estado, y cada objeto de estado pertenece a una subclase de una clase de estado abstracto. El propósito del patrón de estado es hacer que el comportamiento del objeto cambie cuando cambia su estado interno. El patrón de estado requiere la creación de subclases de la clase de estado para cada estado posible del sistema. Cuando el estado del sistema cambia, el sistema cambia la subclase seleccionada.
21. Modo de política (modo de política): el modo de política es para un conjunto de algoritmos, encapsulando cada algoritmo en una clase independiente con la misma interfaz para que puedan ser reemplazados entre sí. El modo de estrategia permite cambiar los algoritmos sin afectar a los clientes. Los modelos estratégicos separan el comportamiento del entorno. La clase de entorno es responsable de mantener y consultar la clase de comportamiento, y la clase de estrategia específica proporciona varios algoritmos. Debido a que el algoritmo y el entorno son independientes, las sumas, restas y modificaciones del algoritmo no afectarán al entorno ni al cliente.
22. Patrón de método de plantilla: el patrón de método de plantilla prepara una clase abstracta, implementa cierta lógica en forma de métodos concretos y constructores concretos, y luego declara algunos métodos abstractos para forzar a las subclases a implementar el resto del método. lógica. Diferentes subclases pueden implementar estos métodos abstractos de diferentes maneras y, por tanto, tener diferentes implementaciones de la lógica restante. Primero cree un marco lógico de nivel superior y deje los detalles de la lógica para que las implementen subclases específicas.
23. Patrón de visitante: El propósito del patrón de visitante es encapsular algunas operaciones impuestas sobre algunos elementos de la estructura de datos. Una vez que es necesario modificar estas operaciones, la estructura de datos que acepta esta operación puede permanecer sin cambios. El patrón de visitante es adecuado para sistemas con estructuras de datos relativamente inciertas. Desacopla la estructura de datos de las operaciones que actúan sobre la estructura, permitiendo que el conjunto de operaciones evolucione con relativa libertad. El patrón de visitante facilita la adición de una nueva operación, que consiste en agregar una nueva clase de visitante. El patrón de visitante concentra comportamientos relacionados en un objeto de visitante en lugar de distribuirlos en clases de nodos separados. Cuando utilice el patrón de visitante, debe colocar la mayor cantidad posible de lógica de exploración de objetos en la clase de visitante en lugar de en sus subclases. El patrón de visitante permite el acceso a través de varias jerarquías de clases a clases de miembros que pertenecen a diferentes jerarquías.