Cómo entender la popularidad de los veintitrés patrones de diseño
Después de perseguir a MM, tengo que invitarte a cenar. Las alitas de pollo de McDonald's y KFC son las comidas favoritas de MM. Aunque el sabor es diferente, ya sea que lleves a tu novia a McDonald's o a KFC, simplemente dile "cuatro alitas de pollo" al camarero. McDonald's y KFC son fábricas que producen alitas de pollo.
Patrón de fábrica: las clases de cliente y las clases de fábrica están separadas. Siempre que los consumidores necesiten un producto, pueden pedírselo al fabricante. Los consumidores pueden aceptar nuevos productos sin modificaciones. La desventaja es que cuando se modifica el producto, la clase de fábrica también debe modificarse en consecuencia. Por ejemplo: cómo crearlo y cómo proporcionárselo al cliente.
2. Constructores
A MM le encanta escuchar las palabras "Te amo". Cuando conozcas a una chica en un lugar diferente, deberías poder decirle esto en su dialecto. Ah, tengo un traductor multilingüe con un botón para cada idioma. Cuando conoces a una chica, puedes decir "Te amo" en el idioma correspondiente. Las chicas extranjeras también pueden manejar esto fácilmente. Este es mi "te amo". Definitivamente es mejor que el traductor utilizado por el ejército estadounidense en Irak.
Patrón 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. Ley de Fábrica
Invita a MM a McDonald's a comer una hamburguesa. Diferentes MM tienen gustos diferentes. Todos lo recuerdan como algo molesto. Normalmente uso fábricas.
Modo método, llevar MM al camarero y decirle "Quiero una hamburguesa". ¿Qué tipo de hamburguesa quieres? Deje que MM se lo diga directamente al camarero.
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 que deben Se implementará la interfaz sin tocar los detalles de qué clase de producto se debe crear una instancia.
4. Prototipo
Cuando charles con MM en QQ, asegúrese de decir algunas palabras afectuosas. He recopilado muchas palabras de amor repugnantes. Cuando es necesario, puedo copiarlas y ponerlas en QQ. Este es mi prototipo. (100 yuanes cada uno, ¿lo quieres?)
Modo de modelo original: especifica el tipo de objeto que se creará dando un objeto prototipo y luego crea 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. Soltero
Tengo seis hermosas esposas. Sus maridos soy todos yo y yo soy nuestro marido, Sigdon. Lo que quieren decir es "marido", y todos se refieren a la misma persona, o sea yo (acabo de tener un sueño, cómo pudo pasar algo tan bueno).
Modo singleton: el modo singleton garantiza que una clase tenga solo una instancia, la crea una instancia por 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".
[/b:9ceca65206]] Patrón estructural[/b:9ceca65206]
6. Adaptador
Conocí a una hermosa mujer de Hong Kong en casa de un amigo. Sarah, pero yo no hablo cantonés y ella no habla mandarín, así que tuve que pedirle ayuda a mi amigo Kent. Como adaptador entre Sarah y yo, Sarah y yo podemos hablar entre nosotros (me pregunto si me engañará).
Patrón de 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. Puente
Di buenos días cuando te reúnas con MM por la mañana y di buenas noches cuando te reúnas con MM por la noche.
Cuando conozcas a una chica que lleva ropa nueva, dile que le queda bien. Cuando te encuentres con el nuevo peinado de MM, deberías decir que su cabello se ve bien. No me preguntes: "¿Qué le dijiste a la chica del nuevo corte de pelo esta mañana?" Simplemente combínalo con bridge.
Modo puente: desacopla la abstracción y la implementación para que puedan cambiar de forma independiente, es decir, convertir la fuerte correlación entre ellas en una correlación débil, es decir, utilizarla entre la abstracción y la implementación de un sistema de software. Composición Las relaciones /agregación reemplazan las relaciones de herencia, lo que les permite variar de forma independiente.
8. Materiales compuestos
Hoy es el cumpleaños de María. "Deberías darme un regalo de cumpleaños". "Bueno, está bien, ve a la tienda y elígelo tú mismo". "Esta camiseta se ve bien, cómprala, esta falda se ve bien, cómprala, este bolso también es bueno". , cómpralo. "Oye, compré tres. Solo prometí darte un regalo". "¿Qué? La camiseta, la falda y el bolso combinan perfectamente". "..." MM puede usarlo. , ¿lo has aprendido?
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. Decoradora de interiores
Es el turno de Sally para el cumpleaños de Mary, así que no la dejes elegir, de lo contrario definitivamente no podrá cubrir los gastos de comida de este mes. Saca la foto que tomé en la cima de la montaña Huashan el año pasado, escribe en la parte de atrás "El mejor regalo es una Fita amorosa", luego ve a la tienda de regalos en la calle a comprar un marco de fotos (la chica que vende regalos es también bonito), y luego búscalo en la casa de al lado Mike, que es diseñador de arte, diseñó una hermosa caja para ponerlo... Ambos somos diseñadores de interiores.
Patrón decorador (Patrón decorador): El patrón decorador extiende la funcionalidad de un objeto de forma transparente al cliente. Esta es una alternativa a la herencia y proporciona más flexibilidad 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. 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 e incluso me enseña desde hace mucho tiempo. Afortunadamente, la cámara tiene un modo de diseño de elevación. Configure la cámara en modo automático, apunte al objetivo y presione el botón del obturador. Todo lo ajusta automáticamente la cámara. Deja que MM me tome una foto con esta cámara.
Modo fachada: La comunicación externa con el subsistema 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. Ligero
Mis dedos están casi agotados de enviar mensajes de texto a mi novia todos los días. Recientemente compré un teléfono nuevo que me permite almacenar algunas frases de uso frecuente. Cuando quieras usarlo, puedes simplemente sacarlo, agregar el nombre del MM delante y enviarlo sin tener que escribirlo palabra por palabra. * * * La frase de disfrute es Flyweight, y el nombre de MM es la característica externa extraída, que se utiliza según el contexto.
Modo de disfrute: Ligero se refiere a la categoría de peso más liviana 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 de la clase regular el estado que * * * se puede disfrutar y el estado que * * * no se puede disfrutar, 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. Agente
Cuando charles con chicas en línea, siempre comience con "Hola, hola" y "¿De dónde eres?" ¿Tú?" ?" Estas palabras son realmente molestas. Escribir un programa para actuar como mi agente. Después de recibir estas palabras, establezca su propia respuesta. Si recibe otras palabras, dígame. ¿Qué tal? Qué genial.
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.
[/b:9ceca65206]] Patrón de comportamiento[/b:9ceca65206]
13. Cadena de responsabilidad
Ir a clase de inglés por la tarde y sentarse. en la última fila. Vaya, hay varias damas hermosas sentadas frente a mí. Recibe una nota y escribe "Hola, ¿puedes ser mi novia? Si no, reenvíala" y la nota se transmitirá. Oh, no, la chica de la primera fila le entregó la nota a la maestra. Escuché que era una solterona. ¡Correr!
Patrón de cadena de responsabilidad: En el patrón de cadena de responsabilidad, muchos objetos están conectados a través de la referencia de cada objeto a su próximo hogar, 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. Órdenes
Tengo una chica cuya familia es muy estricta y no podemos conocernos, así que tengo que enviarnos mensajes entre nosotros con la ayuda de su hermano. Si tenía alguna instrucción para mí, escribía una nota y le pedía a su hermano que me la trajera. No, su hermano emitió otra orden. Para agradecerle, le invité un plato de fideos mixtos. No sé qué dijo: "Envié órdenes a los tres novios de mi hermana al mismo tiempo, así que antes de invitarme a comer, primero calcula tu enojo".
Modo de comando: Comando Un patrón 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 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. Traducción
Tengo un libro "El libro para ligar con chicas", que contiene varias estrategias para ligar con chicas, como los pasos para comer comida occidental y cómo hacerlo. ver películas. Cuando salgas con MM, sé traductor y simplemente sigue el guión anterior.
Modo intérprete: Dado un idioma, el modo intérprete puede definir la 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. Iterador
Me enamoré de Mary y le propuse matrimonio desesperadamente. María: “Si quieres que me case contigo, debes aceptar mis términos.
Yo: "Acepto todas las condiciones". Adelante. "
Mary: "Estoy obsesionada con ese diamante de un quilate. Yo: "Lo compro, lo compro". ¿Hay algo más? "María: "Estoy interesada en una villa junto al lago. Yo: "Lo compro, lo compro". ¿Hay algo más? "
Mary: "Estoy obsesionada con ese deportivo Ferrari. "Me senté en la silla, me zumbaba la cabeza y apreté los dientes. "Lo compro, lo compro. ¿Hay algo más? "...
Subpatrón iterativo: el subpatrón iterativo permite el acceso secuencial a elementos en un agregado sin exponer la apariencia interna del agregado. Una colección formada por múltiples objetos se llama agregado, y un objeto agregado puede contener un Un objeto contenedor para objetos de grupo. El subpatrón de iterador encapsula la lógica de iteración en un subobjeto separado, que está separado del agregado en sí. El subpatrón de iterador simplifica la interfaz del agregado. Cada objeto agregado puede tener uno o más iteradores. el estado de iteración de cada iteración puede ser independiente entre sí. El algoritmo de iteración se puede cambiar independientemente del rol de agregación.
17
Cuatro mms están jugando mahjong. No está claro quién debería hacerlo. ¿Cuánto es para cada uno? Afortunadamente, yo estaba allí en ese momento y me quitaron el dinero de acuerdo con sus fichas, me lo pagaron y todo estuvo bien. p> Modo mediador: el modo mediador encapsula la forma en que un conjunto de objetos interactúan para que no tengan que interactuar explícitamente entre sí, de modo que cuando las interacciones entre algunos objetos cambien, no afecten inmediatamente a otros. Los efectos se pueden cambiar independientemente uno del otro. El modelo mediador abstrae el comportamiento y la colaboración de los objetos, manejando objetos y otros de forma individual.
18. varias chicas al mismo tiempo, asegúrese de recordar claramente lo que le acaba de decir, de lo contrario la chica se enterará. Afortunadamente, tengo una nota. Copiaré lo que le acabo de decir. y guárdelo en la nota para poder verificar los registros anteriores en cualquier momento.
Modo recuerdo: el objeto memo se utiliza para almacenar otros registros. Un objeto que es una instantánea del estado interno de un objeto. El propósito del patrón Memento es capturar el estado de un objeto, externalizarlo y almacenarlo para que el objeto pueda restaurarse al estado almacenado en un momento apropiado en el futuro.
19.
¿Quiere conocer la información más reciente sobre MM de nuestra empresa? Simplemente únase al grupo de buzones de correo de información MM de la empresa. Tom es responsable de recopilar información y publicarla en el grupo de correo, no es necesario que nos notifique. por uno, para que nosotros, como suscriptores (observadores), podamos recibir información a tiempo.
Patrón de observador: el patrón de observador define múltiples dependencias y permite que varios objetos de observador supervisen un objeto de tema al mismo tiempo. de este tema el objeto cambia, todos los objetos observadores serán notificados para que puedan actualizarse automáticamente
20, estado
y Cuando salgas con una chica, debes prestar atención a su estado. Su comportamiento será diferente en diferentes estados. Por ejemplo, si la invitas a ver una película esta noche, una chica que no está interesada en ti dirá "algo anda mal", pero no te odia, pero todavía no. La chica a la que le has gustado dirá: "Está bien, pero ¿puedes traer a mi colega contigo?" ", la chica que ya se ha enamorado de ti dirá "¿Cuándo? ¿Qué tal si vamos al bar después de la película? "Por supuesto, si haces un buen trabajo mientras miras la película, también puedes cambiar el estado de MM de No me gusta a Me gusta.
Modo de estado: el modo de estado permite que un objeto cambie su estado interno cuando cambios de estado. El objeto parece haber cambiado de clase. El propósito del patrón de estado es envolver el comportamiento del objeto en estudio en diferentes objetos de estado, cada uno de los cuales pertenece a una subclase de la clase de estado abstracto. el estado interno del objeto cambia, el comportamiento del objeto cambia. El patrón de estado requiere la creación de una subclase de la clase de estado para cada estado posible del sistema. Cuando el estado del sistema cambia, el sistema cambia la subclase seleccionada.
21. Estrategias
Usa diferentes estrategias cuando salgas con diferentes tipos de chicas. Algunos los invitan a ver una película, otros comen bocadillos efectivos y otros van a la playa en busca de romance. El único propósito es complacer a MM. Hay muchas estrategias en mi caja de herramientas para perseguir chicas.
Patrón de política (Patrón de política): El patrón de política es para un conjunto de algoritmos. Cada algoritmo se encapsula en una clase independiente con la misma interfaz, haciéndolos intercambiables. 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. Método de plantilla
¿Has leído el clásico artículo "Cómo persuadir a las chicas para que tengan sexo"? Los mismos pasos para que las niñas se vayan a la cama se dividen en ocho pasos: encontrarse por casualidad, romper el hielo, perseguir, besar, juegos previos, práctica, acariciar y entrar (método de plantilla), pero cada paso es diferente para diferentes situaciones, depende de su rendimiento en el momento (implementación específica);
Patrón de método de plantilla: el patrón de método de plantilla prepara una clase abstracta e implementa cierta lógica en el formulario. de métodos concretos y constructores concretos, y luego declarar algunos métodos abstractos obliga a las subclases a implementar el resto de la 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. Visitantes
El día de San Valentín se acerca. Quiero enviarle a cada niña un ramo de flores y una tarjeta, pero las flores enviadas a cada niña deben basarse en su personalidad. Características. Cada carta se elige en función de sus características personales. No sé cuál es, así que lo mejor es visitar al florista y al dueño de la tienda de regalos, para que el florista pueda elegir un ramo de flores según las características de la niña, y el dueño de la tienda de regalos también pueda elegir una tarjeta según las características de cada persona, esto será mucho más fácil.
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.