Enumere varios patrones de diseño comunes en el desarrollo de software y explíquelos.
Los patrones de diseño se dividen principalmente en tres tipos: creativos, estructurales y comportamentales.
Los tipos de creación son:
1. Singleton, modo singleton: garantiza que una clase tenga solo una instancia y proporciona un punto de acceso global para acceder a ella
2. Abstract Factory: proporciona una interfaz para crear una serie de objetos relacionados o interdependientes sin especificar sus clases concretas.
3. Método de fábrica: define una interfaz para crear objetos y deja que la subclase decida qué clase crear una instancia. El método de fábrica retrasa la creación de instancias de una clase a la subclase.
4. Constructor, modo construcción: separa la construcción de un objeto complejo de su representación, de modo que un mismo proceso de construcción puede crear diferentes representaciones.
5. Prototipo, modo prototipo: utilice instancias de prototipo para especificar los tipos de objetos que se crearán y cree nuevos objetos copiando estos prototipos.
Los tipos de comportamiento son:
6. Iterador, patrón de iterador: proporciona un método para acceder secuencialmente a cada elemento de un objeto agregado sin exponer la representación interna del objeto.
7. Observador, patrón Observador: define una relación de dependencia de uno a muchos entre objetos. Cuando el estado de un objeto cambia, todos los objetos que dependen de él son notificados y actualizados automáticamente.
8. Método de plantilla: define el esqueleto de un algoritmo en una operación y difiere algunos pasos a las subclases. TemplateMethod permite que las subclases redefinan el algoritmo sin cambiar la estructura del algoritmo.
9. Comando, modo comando: encapsula una solicitud como un objeto, lo que le permite parametrizar clientes con diferentes solicitudes, poner en cola solicitudes y registrar registros de solicitudes, y admitir operaciones reversibles.
10. Estado, modo de estado: permite que un objeto cambie su comportamiento cuando cambia su estado interno. El objeto parece haber cambiado de clase.
11. Estrategia, patrón de estrategia: defina una serie de algoritmos, encapsúlelos uno por uno y hágalos intercambiables. Este patrón hace que los algoritmos sean independientes de los clientes que los utilizan.
12. China de Responsabilidad, modelo de cadena de responsabilidad: dando a múltiples objetos la oportunidad de procesar solicitudes, evitando así la relación de acoplamiento entre el remitente y el receptor de la solicitud.
13. Mediador , Patrón mediador: utilice un objeto mediador para encapsular una serie de interacciones de objetos.
14. Visitante, modo visitante: representa una operación que actúa sobre cada elemento en una estructura de objeto. Permite definir nuevas operaciones que actúan sobre este elemento sin cambiar la clase de cada elemento.
15. Intérprete, modo intérprete: Dado un idioma, define una representación de su gramática y define un intérprete que usa la representación para interpretar oraciones en el idioma.
16. Memento, modo memo: captura el estado interno de un objeto y guarda este estado fuera del objeto sin destruirlo.
Los tipos estructurales incluyen:
17. Compuesto, modo de combinación: combina objetos en una estructura de árbol para representar la relación entre las partes y el todo. Compuesto permite a los usuarios controlar objetos individuales y combinados. Úselo con coherencia.
18. Fachada, modo de apariencia: proporciona una interfaz consistente para un conjunto de interfaces en el subsistema. Fachada proporciona una interfaz de alto nivel, lo que hace que el subsistema sea más fácil de usar.
19. Proxy, modo proxy: proporciona un proxy para que otros objetos controlen el acceso a este objeto
20. Adaptador, modo adaptador: convierte una clase de interfaces en otra interfaz que los clientes Si lo desea, el patrón Adaptador permite que trabajen juntas clases que originalmente no podían funcionar juntas debido a interfaces incompatibles.
21. Decrator, modo decoración: agrega dinámicamente algunas responsabilidades adicionales a un objeto. En términos de funciones agregadas, el modo Decorador es más flexible que generar subclases.
22. Bridge, modo puente: separa la parte abstracta de su parte de implementación para que puedan cambiar de forma independiente.
Veintitrés, peso mosca, modo peso mosca
Es demasiado explicar los 23 patrones de diseño en detalle aquí. Le recomiendo un buen libro "Software" "Secretos: patrones de diseño". ", Los 23 ejemplos de patrones de diseño explicados en él son muy vívidos y fáciles de entender, así como la aplicación de patrones de diseño en JDK. ¡Es muy gratificante leerlo! Busque "Patrón de diseño" en Baidu. El primer artículo sobre "Patrón de diseño" tiene el libro recomendado en la Enciclopedia Baidu. Tiene más de 200.000 visitas.
¡Ojalá puedas aprender patrones de diseño lo antes posible!