¡Comprenda 23 patrones de diseño en segundos! Está un poco sucio, pero en realidad son segundos...

01 método de fábrica

Si buscas un MM, no puedes perderte la cena. Las alitas de pollo de McDonald's y las alitas de pollo de KFC son la comida favorita de MM. Aunque los gustos son diferentes, no importa si llevas tu MM a McDonald's o KFC, solo dile al mesero: “Cuatro alitas de pollo” servirá. . McDonald's y KFC son modelos de fábrica Factory que producen alitas de pollo: la clase de cliente y la clase de fábrica están separadas.

Cada vez que un consumidor necesita un determinado producto, solo necesita solicitarlo a la fábrica. Los consumidores aceptan nuevos productos sin modificaciones. La desventaja es que cuando se modifica el producto, la clase de fábrica también debe modificarse en consecuencia. Tales como: cómo crear y cómo proporcionar al cliente.

02 Modo constructor

Lo que más le gusta escuchar a MM es la oración "Te amo". Cuando te encuentras con MM en diferentes lugares, debes poder decirle esta oración en su dialecto. Tengo un traductor multilingüe, y cada idioma de arriba Hay un botón. Cuando veo un MM, solo necesito presionar el botón correspondiente, y puede decir "Te amo" en el idioma correspondiente. Los MM extranjeros también se pueden arreglar fácilmente. Este es mi generador de "Te amo". .

Modo de construcción: separar la apariencia interna del producto del proceso de producción del producto, de modo que un proceso de construcción pueda generar objetos de producto con diferentes apariencias internas. El modo de construcción permite que la apariencia interna del producto cambie de forma independiente y el cliente no necesita conocer los detalles de la composición interna del producto. Los patrones de compilación imponen un proceso de compilación paso a paso.

03 Fábrica abstracta

Invita a MM a McDonald's a comer hamburguesas. Diferentes MM tienen diferentes gustos. Es algo molesto recordar cada uno. Usualmente uso el modo Factory Method. Llevo a MM al mesero y le digo "Quiero una hamburguesa". ¿Qué tipo de hamburguesa que quieres, solo pídele a MM que le diga directamente al mesero.

Modo de método de fábrica: la clase de fábrica central ya no es responsable de la creación de todos los productos, pero el trabajo de creación específico se transfiere a las subclases, convirtiéndose en un rol de fábrica abstracto, solo responsable de proporcionar la interfaz que debe implementar la clase de fábrica específica, sin tocar El detalle de qué clase de producto se debe instanciar.

04 Modo prototipo

Cuando hables con MM en QQ, debes decir algunas palabras cariñosas. He recopilado muchas palabras de amor desagradables. Cuando sea necesario, simplemente cópialas y ponlas en QQ. Este es el prototipo de mis palabras de amor. (100 yuanes por pieza, lo quieres)

Modo de modelo original: dando un objeto prototipo para indicar el tipo de objeto que se creará y luego creando más objetos del mismo tipo copiando el objeto prototipo. El patrón del modelo original permite aumentar o disminuir dinámicamente las categorías de productos. La categoría de productos no necesita tener ninguna estructura jerárquica predeterminada. El patrón del modelo original es aplicable a cualquier estructura jerárquica. La desventaja es que cada clase debe estar equipada con un método de clonación.

05 Modo de estado único

Tengo 6 hermosas esposas, y sus esposos son todos yo. Soy el esposo Sigleton en nuestra familia. Mientras digan "esposo", todos se refieren a la misma persona, y ese soy yo (acabo de tener un sueño, ¿Cómo puedo algo tan bueno?)

Modo singleton: el modo singleton garantiza que solo haya una instancia de una determinada clase, se crea una instancia y proporciona esta instancia a todo el sistema. El patrón Singleton solo debe usarse cuando existe una necesidad real de "instancia única".

06 Modo adaptador

En la fiesta de un amigo, conocí a una mujer hermosa, Sarah, de Hong Kong, pero yo no puedo hablar cantonés y ella no puede hablar mandarín, así que tuve que recurrir a mi amigo Kent. Él era el adaptador entre Sarah y yo. déjame y Sarah Sarah podemos hablar entre nosotros (no sé si jugará conmigo)

Modo de adaptador (transformador): transforma la interfaz de una clase en otra interfaz que el cliente espera, de modo que dos clases que no pudieron funcionar juntas debido a desajustes de interfaz puedan trabajar juntas. La clase de adaptador puede devolver una instancia adecuada al cliente de acuerdo con los parámetros.

07 Modo puente

Cuando te encuentras con MM por la mañana, quieres decir buenos días; cuando te encuentras con MM por la noche, quieres decir buenas noches; cuando te encuentras con MM con un vestido nuevo, quieres decir que tu ropa es tan hermosa; cuando conoces el nuevo peinado de MM, quieres decir el tuyo El cabello es tan hermoso. No me preguntes "Conocí a MM en la mañana y me hice un nuevo peinado, ¿qué dices?" Puedes usar BRIDGE para combinarlo tú mismo.

Modo puente: desvincular la abstracción de la realización, de modo que las dos puedan cambiar de forma independiente, es decir, cambiar la asociación fuerte entre ellas por una asociación débil, es decir, entre la abstracción y la realización de un sistema de software Utilizar una relación de composición/agregación en su lugar de una relación de herencia para que los dos puedan variar independientemente.

08 Modo compuesto El cumpleaños de María es hoy. “Es mi cumpleaños y quieres darme un regalo.” “Bueno, bueno, ve a la tienda y elígelo tú mismo.” “Esta camiseta es hermosa, cómprala, este vestido es hermoso, cómpralo, este El bolso también es lindo, Buy". "Oye, compré tres piezas y solo prometí dar una como regalo". "¿Qué, una camiseta, una falda y un bolso son solo un conjunto, señorita, por favor?" envuélvelo "...", MM usará el modo Compuesto, ¿lo has entendido?

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 la parte. El modo compuesto es un modo que se ocupa de las estructuras de árbol de los objetos. El modo compuesto expresa la relación entre partes y totalidades en una estructura de árbol. El modo compuesto permite al cliente tratar los objetos componentes individuales como si fueran el objeto compuesto compuesto por ellos.

09 Modo de decoración

Después del cumpleaños de Mary, es el turno de Sarly para celebrar su cumpleaños, así que no le pidas que elija sola, de lo contrario, los gastos de comida de este mes definitivamente se gastarán. Saca la foto que tomé en la cima de la montaña Huashan el año pasado, y escribe en la parte de atrás “El mejor regalo es te amo, Fita”, y luego fue a la tienda de regalos en la calle a comprar un marco de fotos (el MM que vende regalos también es muy hermoso), y luego le preguntó a Mike, que se dedica al diseño de arte de al lado, a diseñar una bonita caja para ponerla... Todos somos Decoradores, al final todos me embellecen, ¿qué tal, entiendes?

Modo de decoración: El modo de decoración extiende la funcionalidad del objeto de manera transparente al cliente, es una alternativa a la relación de herencia y proporciona más flexibilidad que la herencia. Agregue dinámicamente funciones a un objeto, y estas funciones se pueden revocar dinámicamente. Añade una gran cantidad de funciones resultantes de la permutación y combinación de algunas funciones básicas.

10 modo fachada

Tengo una cámara Nikon profesional y me gusta ajustar manualmente la apertura y el obturador para que las fotos que tomo sean profesionales, pero MM no entiende estas cosas, incluso después de enseñar durante mucho tiempo. Afortunadamente, la cámara tiene un modo de diseño de fachada. Si configura la cámara en modo automático, solo necesita apuntar al objetivo y presionar el obturador. La cámara ajustará todo automáticamente, de modo que MM también puede usar esta cámara para tomar una foto de mí. Patrón de fachada: la comunicación externa con un subsistema debe realizarse a través de un objeto de fachada unificado.

El patrón Facade proporciona una interfaz de alto nivel que facilita el uso del subsistema. 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 de peso mosca

Envío mensajes de texto con MM todos los días y mis dedos están agotados. Hace poco compré un nuevo teléfono móvil. Puedo almacenar algunas oraciones de uso común en el teléfono. Ya no es necesario escribir palabra por palabra. La oración compartida es Flyweight, y el nombre de MM es la característica externa extraída, que se usa según el contexto. Modo de peso mosca: FLYWEIGHT se refiere al peso gallo en los combates de boxeo.

El modo Flyweight admite de manera eficiente una gran cantidad de objetos de granularidad fina de manera compartida. La clave para compartir en modo Flyweight es distinguir entre estado intrínseco y estado extrínseco. El estado intrínseco se almacena dentro de Flyweight y no cambiará con el entorno. El estado extrínseco cambia con el cambio del entorno. El estado extrínseco no puede afectar al estado intrínseco, son independientes entre sí.

Separe el estado que se puede compartir del estado que no se puede compartir de la clase normal, y el estado que no se puede compartir se excluye de la clase. El cliente no puede crear directamente el objeto compartido, pero debe usar un objeto de fábrica responsable de crear el objeto compartido. El modo Flyweight reduce en gran medida la cantidad de objetos en la memoria.

12 modos proxy

Chatear con MM en Internet siempre comienza con "hola, hola", "¿De dónde eres?" "¿Cuántos años tienes?" "¿Cuánto mides?" Estas palabras son realmente molestas. Escribir un programa como mi Proxy, establecer escribe tu propia respuesta cuando recibas estas palabras, y avísame para responder cuando recibas otras palabras, qué te parece, genial.

Modo proxy: el modo proxy proporciona un objeto proxy para un objeto y el objeto proxy controla la referencia al objeto de origen. La agencia es cuando una persona o institución actúa en nombre de otra persona o institución. En algunos casos, el cliente no quiere o no puede referirse directamente a un objeto, y el objeto proxy puede desempeñar directamente un papel de intermediario entre el cliente y el objeto de destino.

Los clientes no pueden distinguir entre objetos sujetos proxy y objetos sujetos reales. Es posible que el modo proxy no conozca el objeto proxy real, pero solo contiene una interfaz del objeto proxy. En este momento, el objeto proxy no puede crear el objeto proxy, y el objeto proxy debe ser creado y pasado por otros roles del sistema. .

13 Modelo de Cadena de Responsabilidad

Fui a la clase de inglés por la noche y me senté en la última fila para escabullirme. Wow, hay varios MM hermosos sentados al frente. Oye, encuentra una nota y escribe "Hola, ¿puedes ser mi novia? Si no quieres por favor Pase adelante", las notas fueron pasando una por una. Uy, el MM que la pasó a la primera fila le pasó la nota a la maestra. Escuché que ella es una solterona, ¡huye!

Modo de cadena de responsabilidad: En el modo de cadena de responsabilidad, muchos objetos están conectados para formar una cadena por la referencia de cada objeto a su próximo hogar. Las solicitudes se pasan en la cadena hasta que un objeto de la cadena decide manejar la solicitud. El cliente no sabe qué objeto de la cadena manejará finalmente la solicitud y el sistema puede reorganizar dinámicamente la cadena y asignar responsabilidades sin afectar al cliente. El procesador tiene dos opciones: aceptar la responsabilidad o pasar la responsabilidad a la siguiente parte. Una solicitud puede no terminar siendo aceptada por ningún objeto receptor.

14 modo de comando

Tengo una MM cuya familia es muy estricta y no podemos vernos, así que tengo que usar a su hermano para enviar mensajes entre nosotros. Si tiene alguna instrucción para mí, solo escribo una nota y le pido a su hermano que traiga a mí. No, su hermano menor envió otro COMMAND. Para agradecerle, le invité a un tazón de fideos con salsa variada, pero él dijo: "Le enviaré COMMAND a los tres novios de mi hermana al mismo tiempo, y tú eres el más barato. Invitar yo a comer fideos".

Patrón de comando: el patrón de comando encapsula una solicitud u operación 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 comando permite que la parte solicitante y la parte emisora ​​sean independientes, por lo que la parte solicitante no necesita conocer la interfaz de la parte receptora, y mucho menos cómo se recibe la solicitud, si se ejecuta la operación, cuándo se ejecuta. , y cómo se ejecuta. El sistema admite deshacer comandos.

15 Modo Intérprete

Tengo un "Libro de MM en remojo", que contiene varias estrategias para MM, como los pasos para comer comida occidental, cómo ir al cine, etc. Cuando salga con un MM, simplemente haga un intérprete y siga el guión anterior. ejecutalo.

Modo intérprete: dado un idioma, el modo intérprete puede definir una representación de su gramática y proporcionar un intérprete al mismo tiempo. Los clientes pueden usar este intérprete para interpretar oraciones en este idioma. Los patrones del intérprete describirán cómo interpretar estas declaraciones utilizando el diseño del esquema dada una gramática simple.

El lenguaje mencionado en el patrón del intérprete se refiere a cualquier combinación que cualquier objeto intérprete pueda interpretar. En el modo intérprete, es necesario definir una jerarquía de clases de comandos que representan la gramática, es decir, una serie de reglas de combinación. Cada objeto de comando tiene un método de explicación, que representa la interpretación del objeto de comando. Cualquier permutación y combinación de objetos en una jerarquía de objetos de comando es un lenguaje.

16 modos de iteración

Me enamoré de Mary y le propuse matrimonio desesperadamente. Mary: "Si quieres que me case contigo, tienes que aceptar mis condiciones" Yo: "Acepto cualquier condición, solo dime" Mary: "Me enamoré de ese diamante de un quilate" Yo: " Lo compraré, lo compraré, ¿hay más?” María: “Me interesa esa villa junto al lago” Yo: “Lo compraré, lo compraré, ¿hay más? María: “Me interesa ese deportivo Ferrari” Me zumbaba la cabeza, sentado en una silla, apretaba los dientes: “Lo compro, lo compro, ¿hay más?”.

Modo de iteración: el modo de iteración puede acceder secuencialmente a los elementos de una colección sin exponer la apariencia interna de la colección. El agregado formado por varios objetos se denomina agregado, y 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 autónomo, por lo tanto, aislado del propio agregado.

El modo de iteración simplifica la interfaz agregada. Cada objeto de agregación puede tener uno o más subobjetos de iterador, y el estado de iteración de cada iterador puede ser independiente entre sí. El algoritmo iterativo puede ser independiente de los cambios de roles de agregación.

17 Patrón mediador

Cuatro MM están jugando al mahjong, y no está claro quién debe dar a quién a quién. Afortunadamente, yo estaba al lado en ese momento y calculé el dinero de acuerdo con la cantidad de fichas. Los que ganaron dinero me lo quitaron y los que perdieron dinero también me pagaron, todo está bien, recibí cuatro llamadas de MM. Patrón de mediador: el patrón de mediador envuelve la forma en que interactúa un conjunto de objetos para que estos objetos no tengan que interactuar explícitamente entre sí. Permitiendo así que se acoplen libremente.

Cuando la interacción entre algunos objetos cambia, no afectará inmediatamente la interacción entre otros objetos. Se garantiza que estos efectos se pueden variar independientemente unos de otros. El patrón Mediator convierte una interacción de muchos a muchos en una interacción de uno a muchos. El patrón mediador abstrae el comportamiento y la cooperación de los objetos y separa el comportamiento a pequeña escala de los objetos de la interacción de otros objetos.

18 modo de notas

Al chatear con varios MM al mismo tiempo, debe recordar exactamente lo que acaba de decir a los MM, de lo contrario, los MM no estarán contentos si se enteran. Afortunadamente, tengo una nota y copiaré todo lo que dije a cualquier MM en este momento. Póngalo en la nota y guárdelo, para que pueda consultar los registros anteriores en cualquier momento.

Patrón de recuerdo: un objeto de recuerdo es un objeto que se utiliza para almacenar una instantánea del estado interno de otro objeto. El propósito del modo memo 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 adecuado en el futuro.

19 Patrón de observador

¿Quiere conocer la información más reciente de MM de nuestra empresa? Simplemente únase al grupo de correo electrónico de inteligencia MM de la compañía. Tom es responsable de recopilar inteligencia. No necesita notificarnos uno por uno de la nueva información que descubre, sino que la publica directamente en el grupo de correo electrónico. Como suscriptores (observadores), nosotros puede recibir información a tiempo.

Modo de observador: el modo de observador define una relación de dependencia de varios equipos, lo que permite que varios objetos de observador controlen un determinado objeto al mismo tiempo. Este objeto sujeto notifica a todos los objetos observadores cuando hay un cambio de estado, lo que les permite actualizarse automáticamente.

modo de 20 estados

Al salir con un MM, debes prestar atención a su estado. Su comportamiento será diferente en diferentes estados. Por ejemplo, si le pides ir al cine esta noche, el MM que no está interesado en ti dirá "Tengo algo". que hacer", El MM que no te odia pero aún no le has gustado dirá "Está bien, pero ¿puedo traer a mi colega?" El MM que ya le gustas dirá "¿Qué hora es? ¿Qué tal ir de discotecas después de ver la película?” ¿Te gusta?” Por supuesto, si te desempeñas bien mientras miras la película, también puedes cambiar el estado de MM de disgusto o disgusto a gusto.

Patrón de estado: el patrón de estado permite que un objeto cambie su comportamiento cuando cambia su estado interno. El objeto parece haber cambiado de clase. El patrón de estado envuelve el comportamiento del objeto bajo estudio en diferentes objetos de estado, cada uno de los cuales pertenece a una subclase de una clase de estado abstracta.

La intención del patrón de estado es permitir que un objeto cambie su comportamiento cuando cambia su estado interno. El patrón State requiere crear una subclase de la clase State para cada estado posible que el sistema pueda alcanzar. Cuando cambia el estado del sistema, el sistema cambia la subclase seleccionada.

21 Patrón de estrategia

Al salir con diferentes tipos de MM, es necesario utilizar diferentes estrategias, para algunos es mejor ir al cine, para otros es mejor comer bocadillos y para otros es mejor ir a la playa para el romance. hay muchas estrategias en el kit de MM. Modo de estrategia: el modo de estrategia encapsula cada algoritmo en una clase separada con una interfaz común para un conjunto de algoritmos, de modo que puedan reemplazarse entre sí.

El patrón de estrategia permite que el algoritmo cambie sin afectar al cliente. El modelo de política separa el comportamiento del entorno. La clase de entorno es responsable de mantener y consultar la clase de comportamiento, y se proporcionan varios algoritmos en la clase de estrategia concreta. Dado que el algoritmo y el entorno son independientes, el aumento, la disminución y la modificación del algoritmo no afectarán al entorno ni al cliente.

22 Plantilla Método Patrón

¿Has leído el clásico artículo "Cómo convencer a una chica para que se vaya a la cama"? Los pasos para que las niñas se vayan a la cama se dividen en ocho pasos: coincidencia, romper el punto muerto, perseguir, besar, juegos previos, manos a la obra, acariciar y entrar (método de plantilla), pero cada paso es diferente para diferentes situaciones. hacerlo depende de su adaptabilidad (implementación específica);

Patrón de método de plantilla: el patrón de método de plantilla prepara una clase abstracta, implementa parte de la lógica en forma de métodos concretos y constructores concretos, y luego declara algunos métodos abstractos para obligar a las subclases a implementar la lógica restante. Diferentes subclases pueden implementar estos métodos abstractos de diferentes maneras y, por lo tanto, tener diferentes implementaciones de la lógica restante. Primero formule un marco lógico de nivel superior y deje los detalles de la lógica a subclases específicas para implementar.

23 patrón de visitante

Llegó el día de San Valentín, quiero enviar un ramo de flores y una tarjeta a cada MM, pero las flores enviadas por cada MM deben basarse en sus características personales, y cada tarjeta debe seleccionarse de acuerdo con sus características personales, ¿qué puedo hacer? Para ser claros, deje que el florista y el dueño de la tienda de regalos sean visitantes, deje que el florista elija un ramo de flores de acuerdo con las características de MM y deje que el dueño de la tienda de regalos elija una tarjeta de acuerdo con las características de cada persona, así que será mucho más fácil;

Patrón de visitante: El propósito del patrón de visitante es encapsular algunas operaciones aplicadas a ciertos elementos de la estructura de datos. Una vez que es necesario modificar estas operaciones, la estructura de datos que recibe esta operación puede permanecer sin cambios. El patrón de visitante es adecuado para sistemas donde la estructura de datos es relativamente indefinida.Desacopla el acoplamiento entre la estructura de datos y las operaciones que actúan sobre la estructura, de modo que el conjunto de operaciones puede evolucionar con relativa libertad. El patrón de visitante facilita la adición de nuevas operaciones mediante la adición de una nueva clase de visitante.

El patrón de visitante concentra comportamientos relacionados en un objeto de visitante, en lugar de dispersarlos en clases de nodos individuales. Cuando utilice el patrón Visitor, coloque tanta lógica de exploración de objetos como sea posible en la clase Visitor, en lugar de en sus subclases. El patrón de visitante puede abarcar varias jerarquías de clases para acceder a las clases de miembros que pertenecen a diferentes jerarquías.

Supongo que te gusta

Origin blog.csdn.net/2301_78588786/article/details/131774452
Recomendado
Clasificación