Red de conocimiento informático - Programación de la red - ¿Quién puede presentar algunos de los patrones de diseño más utilizados en el desarrollo de plataformas JAVA? Es mejor si son fáciles de entender y tienen ejemplos. Se otorgarán 500 puntos.

¿Quién puede presentar algunos de los patrones de diseño más utilizados en el desarrollo de plataformas JAVA? Es mejor si son fáciles de entender y tienen ejemplos. Se otorgarán 500 puntos.

Los ejemplos son muy diferentes, pero fáciles de entender.

El patrón de fábrica, el patrón de método de fábrica, el patrón singleton, el patrón de fachada, el patrón de observador y el patrón de puente se utilizan comúnmente. Diferentes proyectos tienen diferentes direcciones de diseño y los patrones de diseño a los que se puede hacer referencia también son diferentes. No hay un número fijo, pero los patrones anteriores se utilizan con más frecuencia.

Encontré otros modos y los enumeré todos.

======================

Patrones de diseño comunes en Java

Patrones de innovación

1. Fábrica: coma después de perseguir a MM. Las alitas de pollo de McDonald's y KFC son las favoritas de las niñas. Aunque el sabor es diferente, ya sea que lleves a tu chica 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. A Builder-MM le gusta más 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, sólo necesitas presionar el botón correspondiente, y podrá decir "Te amo" en el idioma correspondiente. Las chicas extranjeras también pueden hacerlo fácilmente. Esto es mío. 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. Método Factory: invita a MM a McDonald's a comer una hamburguesa. Diferentes mms tienen gustos diferentes, es molesto que todos lo recuerden. Yo suelo utilizar el método de fábrica, llevar a la chica al camarero y decirle "quiero una hamburguesa". Deja que la chica le diga directamente al camarero qué tipo de hamburguesa quiere.

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. Recopilé muchas palabras de amor repugnantes, las copié y las puse en QQ cuando fue necesario. 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 son todos míos. Soy nuestro marido Sigdon. Siempre que digas "marido", todo se refiere a la misma persona, ese soy 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".

Modelo estructural

6.ADAPTADOR——Conocí a una hermosa mujer de Hong Kong, Sarah, en la fiesta de un amigo, pero yo no puedo hablar cantonés y ella no puede hablar. 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 - Si conoces a una chica por la mañana, dile buenos días; si conoces a una chica por la noche, dile buenas noches; si conoces a una chica que lleva ropa nueva, dile que la ropa se ve 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.

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 muestra 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—El cumpleaños de María es el turno de Sarly, no la dejes elegir, de lo contrario definitivamente no podrá cubrir los gastos de alimentación 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 muy hermoso), y luego pídele a Mike, el diseñador de arte de al lado, que diseñe una hermosa caja y la coloque...

Patrón decorador (Patrón decorador): El patrón decorador amplía la funcionalidad del objeto. de forma transparente para el cliente. Esta es una relación de herencia. Una alternativa que 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 tomadas sean profesionales, pero MM no entiende estas cosas, incluso después. enseñándome durante 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. FLYWEIGHT——Enviando mensajes de texto a MM todos los días, mis dedos están casi agotados. Recientemente compré un teléfono móvil nuevo y puedo almacenar en él algunas frases de uso frecuente. Cuando quieras usarlo, puedes simplemente sacarlo, agregar el nombre del MM al frente y enviarlo sin escribir 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 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. Agente: cuando chateas con chicas en línea, siempre comienzan con "Hola, hola" y "¿De dónde eres?" "¿Cuántos años tienes?" Son realmente muy molestos. Escribir un programa para actuar como mi agente. Cuando recibas estas palabras, puedes configurar una respuesta automática para notificarme cuando recibas otras palabras. ¿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.

Patrón de comportamiento

13. Cadena de responsabilidad: ir a clase de inglés por la noche y sentarse en la última fila para escapar. Vaya, hay varias chicas 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 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. COMANDO————Tengo una niña cuya familia es muy estricta y no podemos conocernos. Tenemos que enviarnos mensajes entre nosotros con la ayuda de mi 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 debes calcular tu enojo.", :-(

Patrón de orden: el patrón de comando encapsula la solicitud u operación en un objeto. El patrón de comando separa la responsabilidad de emitir el comando de la responsabilidad de ejecutar el comando y las delega a diferentes objetos. El patrón de comando permite al solicitante y al remitente. Sea independiente, no es necesario conocer la interfaz del receptor, y mucho menos cómo se recibe la solicitud, si se ejecuta la operación, cuándo se ejecuta y cómo se ejecuta.

15, Explicador. - La verdadera guía para salir con una chica contiene varias estrategias para salir con una chica, como los pasos para comer comida occidental y cómo ir al cine. Cuando salgas con una chica, sé un 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 que los clientes pueden usar para interpretar oraciones de este idioma. El modo intérprete se describirá en el propietario. Después de la sintaxis simple, cómo interpretar estas declaraciones usando el diseño de patrones. El lenguaje mencionado en el patrón de intérprete se refiere a cualquier combinación que pueda ser interpretada por cualquier objeto de intérprete. En el patrón de intérprete, se debe definir una clase de comando que represente la gramática. Jerarquía, es decir, un conjunto 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 a toda costa.

Mary: "Si quieres que me case contigo, debes aceptar mis condiciones."

Yo: "Estoy de acuerdo con todo, solo dilo".

p>

Mary: "Estoy obsesionada con ese diamante de un quilate."

Yo: "Lo compro, lo compro, ¿qué más quieres?"

Mary: "Estoy interesada en una villa junto al lago."

Yo: "La compro, la compro, ¿qué más quieres?"

María: "Tu pene debe tener 50 centímetros de largo"

Me zumbaba la cabeza, me senté en la silla y apreté los dientes: "Te corto, te corto, ¿Hay algo más?"

......

Subpatrón iterativo: el subpatrón iterativo permite el acceso secuencial a elementos de un agregado sin exponer las partes internas 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. Mediador————Cuatro niñas están jugando mahjong y no saben quién debe darle a quién cuánto dinero. Afortunadamente, yo estaba allí en ese momento y conté el dinero según sus fichas. Los que ganaron dinero me lo quitaron y los que perdieron dinero me compensaron. Tengo cuatro teléfonos móviles MM.

Modo mediador: El modo mediador encapsula la forma en que interactúan una serie de objetos para que estos objetos no tengan que interactuar explícitamente entre sí. 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. MEMENTO - Cuando charles con varias chicas al mismo tiempo, asegúrese de recordar claramente lo que les acaba de decir, de lo contrario, las chicas no estarán contentas si se enteran. Afortunadamente, tengo una nota. Copio lo que le acabo de decir a cualquier chica y lo guardo en la nota para poder consultar los registros anteriores en cualquier momento.

Patrón Memento: Un 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. Observador: ¿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 recopila información. La nueva información que descubre se publica en el grupo de correo electrónico sin notificarnos uno por uno, para que nosotros, como suscriptores (observadores), podamos recibir la información a tiempo.

Patrón de observador: el patrón de observador define múltiples dependencias, lo que permite 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. Estado: cuando sales con una chica, debes prestar atención a su estado. Su comportamiento variará de un estado a otro. Por ejemplo, si la invitas a ver una película esta noche, una chica que no está interesada en ti dirá "tengo algo que hacer", mientras que una chica que no te odia pero aún no le agradas dirá " Está bien, pero ¿puedes traer a mi colega contigo?" Una chica que ya se ha enamorado de ti dirá: "¿Cuándo? ¿Qué tal si vamos al bar después de ver la película?" Eso sí, si haces un buen trabajo mientras Al ver la película, también puedes cambiar el estado de la chica de No me gusta a Me gusta.

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 en 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. Estrategia: salir con diferentes tipos de chicas requiere diferentes estrategias. Algunos los invitan a ver una película, otros comen bocadillos y otros van a la playa en busca de romance. El único propósito es complacer a MM. Hay muchas estrategias en mi paquete de persecución de MM.

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 artículo clásico "Cómo persuadir a las chicas para que se vayan a la cama"? Los pasos inmutables para que las niñas se vayan a la cama se dividen en ocho métodos modelo: encuentro inesperado, romper el hielo, persecución, besos, juegos previos, práctica, caricias y entrada. Sin embargo, cada paso tiene diferentes métodos según las diferentes situaciones. dependiendo de su improvisación (implementación específica);

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 subclases. para 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.VISITOR—El día de San Valentín ya está aquí. Quiero enviarle a cada niña un ramo de flores y una tarjeta, pero las flores enviadas a cada niña deben basarse en sus características personales, y cada tarjeta debe ser. basado en ella. características personales para elegir. ¿Cómo puedo averiguarlo por mí mismo? Será mejor que le pida al florista y al dueño de la tienda de regalos que me visiten, para que el florista pueda elegir un ramo de flores según las características de MM, y el dueño de la tienda de regalos también pueda elegir una tarjeta según las características de cada persona, lo cual será mucho más 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 tanta lógica de exploración de objetos como sea posible 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.