Patrón de diseño C ++ (1)

Introducción

  Aprendí todos los modelos de diseño en el pasado, pero debido a los largos períodos de inactividad, se irán olvidando gradualmente; por lo tanto, recientemente reinicié el aprendizaje de patrones de diseño de programación; y yo mismo estoy involucrado en el desarrollo relacionado con C ++ y ejemplos de C ++ en Internet. Relativamente pocos (principalmente Java), por lo que estos patrones de diseño se implementan en código C ++.
  El patrón de diseño es principalmente una idea de diseño propuesta para lenguajes orientados a objetos, que se utiliza principalmente para mejorar la reutilización del código, es decir, cuando cambian los requisitos, intentar reducir el impacto y realizar los menores cambios.
   La orientación a objetos tiene tres características: 1. Encapsulación, ocultando la implementación lógica interna; 2. Heredando y reutilizando código existente; 3. Polimorfismo, reescribiendo el comportamiento del objeto para lograr múltiples tipos de comportamientos múltiples.
   Los seis principios de los patrones de diseño orientados a objetos:
    1. El principio de inversión de dependencia: la programación de interfaces depende de la abstracción en lugar de la implementación específica; es decir, la abstracción no depende de los detalles de implementación y los detalles de implementación dependen de la abstracción; por lo tanto, se combinan partes estáticas con Divida la parte dinámica; de lo contrario, la parte estática se convertirá en la parte dinámica.
    2. El principio de apertura y cierre: abrir para ampliar y cerrar para modificar. El negocio cambia constantemente. Cuando el programa necesita ser cambiado, actualizado o mantenido, en lugar de modificarlo directamente, debe usar un método de extensión para aplicar de manera flexible la abstracción, la herencia y el polimorfismo para mejorar la escalabilidad del programa.
    3. Principio de responsabilidad única: una clase solo hace una cosa, una clase solo tiene una razón para su cambio y la dirección de su cambio implica la responsabilidad de la clase.
    4. Principio de sustitución de Richter: las subclases deben poder reemplazar a la clase principal, y cualquier lugar donde se haga referencia a la clase principal debe poder utilizar de forma transparente los objetos de su subclase. El reemplazo de Richter se basa principalmente en las dos características de herencia y polimorfismo.
    5. Principio de aislamiento de la interfaz: minimice la interfaz, minimice la interacción externa de las funciones públicas de una clase y exponga solo los métodos necesarios externamente.
    6. Principio de conocimiento mínimo: también conocido como el principio de Dimit, significa que un objeto debe tener el menor conocimiento de otros objetos. Es decir, una clase interactúa con otras clases lo menos posible.

Que es GoF

Cuando se trata de patrones de diseño, GoF debe ser inseparable:

GoF: Banda de los cuatro, también conocida como "Grupo de los cuatro", a saber: EErich Gamma, Richard Helm, Ralph Johnson y John Vlissides.

  En 1994, estas grandes vacas fueron coautoras y publicaron un libro llamado "Patrones de diseño: elementos de software reutilizable orientado a objetos" (es decir, "Patrones de diseño"). El libro primero menciona el concepto de patrones de diseño en el desarrollo de software, elevando los patrones de diseño a un nivel teórico y estandarizándolos. El libro menciona 23 patrones de diseño básicos Hoy en día, en el desarrollo de software orientado a objetos reutilizable, todavía están surgiendo nuevos patrones de diseño.

Tipos de patrones de diseño

Tipos de descripción
Patrones creativos (patrones creativos) Se utiliza principalmente para construir objetos para que puedan separarse del sistema real.
Patrones estructurales (patrones estructurales) Se utiliza principalmente para formar una gran estructura de objetos entre muchos objetos diferentes.
Patrones de comportamiento Se utiliza principalmente para gestionar algoritmos, relaciones y responsabilidades entre objetos.

Patrones creativos (patrones creativos)

  1. Patrón Singleton: asegúrese de que una clase tenga solo una instancia y proporcione un punto de acceso global para acceder a ella.
  2. Abstract Factory Pattern (Abstract Factory Pattern): para crear una serie de interfaces de objetos relacionados o interdependientes, sin especificar sus clases específicas.
  3. Patrón de constructor: separe la construcción de un objeto complejo de su representación, de modo que el mismo proceso de construcción pueda crear diferentes representaciones.
  4. Patrón de método de fábrica: defina una interfaz para crear objetos y deje que la subclase decida qué clase instanciar.
  5. Patrón de prototipo: utilice un objeto de prototipo para crear un objeto específico y créelo copiando, lo que equivale a clonar.

Patrones estructurales (patrones estructurales)

  1. Patrón de adaptador: convierta un tipo de interfaz en otro. El adaptador puede adaptar las clases originalmente incompatibles para que funcionen juntas.
  2. Patrón de puente: separe la parte abstracta de su parte de realización, permitiendo que se cambien de forma independiente.
  3. Patrón de decorador: agregue dinámicamente algunas responsabilidades adicionales a un objeto. Desde el punto de vista de la extensión, es más flexible que la subclasificación.
  4. Patrón compuesto: combine objetos en una estructura de árbol para representar una estructura jerárquica de "parte-todo". Permite a los clientes tener coherencia en el uso de objetos individuales y objetos compuestos.
  5. Patrón de fachada: proporciona una interfaz coherente para un conjunto de interfaces en el subsistema. De esta manera, se realiza la relación de acoplamiento flexible entre el subsistema y el cliente; para el cliente, los componentes del subsistema están blindados, se reduce la cantidad de objetos que el cliente necesita procesar y el subsistema es más fácil de usar.
  6. Patrón de peso mosca: utilice la tecnología de uso compartido para admitir de forma eficaz una gran cantidad de objetos detallados.
  7. Patrón de proxy: proporcione un proxy para que el objeto controle el acceso al objeto.

Patrones de comportamiento

  1. Patrón de método de plantilla: Defina el esqueleto de un algoritmo en funcionamiento y retrase algunos pasos hasta las subclases. El método de plantilla permite que las subclases redefinan ciertos pasos específicos de un algoritmo sin cambiar la estructura de un algoritmo.
  2. Patrón de comando: es un patrón de diseño basado en datos. Encapsule una solicitud como un objeto para que pueda parametrizar clientes con diferentes solicitudes.
  3. Patrón de iterador: proporciona una forma de acceder secuencialmente a cada elemento en un objeto agregado sin exponer la representación interna del objeto.
  4. Patrón de observador: defina una relación de dependencia de uno a muchos entre objetos para que cuando el estado de un objeto cambie, todos los objetos que dependen de él sean notificados y se actualicen automáticamente. Cuando hay una relación de uno a muchos entre objetos, use el patrón de observador
  5. Patrón de mediador: use un objeto de mediador para encapsular una serie de interacciones de objetos. El intermediario hace que los objetos no necesiten referirse explícitamente entre sí, lo que afloja el acoplamiento y puede cambiar independientemente la interacción entre ellos.
  6. Patrón Memento: Bajo la premisa de no destruir la encapsulación, captura el estado interno de un objeto y guarda este estado fuera del objeto. De esta forma, el objeto se puede restaurar a su estado guardado más tarde.
  7. Patrón de intérprete: Dado un idioma, defina una representación de su gramática y defina un intérprete que use la representación para interpretar oraciones en el idioma.
  8. Patrón de estado:Permite que un objeto cambie su comportamiento cuando cambia su estado interno. El objeto parece modificar la clase a la que pertenece.
  9. Patrón de estrategia: Defina una serie de algoritmos, encapsúlelos uno por uno y conviértalos en intercambiables. Este modo permite que el algoritmo cambie independientemente del cliente que lo utilice.
  10. Patrón de cadena de responsabilidad: para eliminar el acoplamiento entre el remitente y el receptor de la solicitud, varios objetos tienen la oportunidad de procesar la solicitud. Conecte estos objetos en una cadena y pase la solicitud a lo largo de esta cadena hasta que un objeto la maneje.
  11. Patrón de visitante (Patrón de visitante): Representa una operación que actúa sobre cada elemento en una estructura de objeto. Te permite definir nuevas operaciones que actúan sobre estos elementos sin cambiar su clase.

  Nota: La descripción detallada de cada modo de diseño se completará en el futuro. Primero, haga un resumen general y comprenda cada modo de diseño en conjunto.

Supongo que te gusta

Origin blog.csdn.net/CFH1021/article/details/108885862
Recomendado
Clasificación