Patrón decorador patrón combinado

¡Acostúmbrate a escribir juntos! Este es el día 12 de mi participación en el "Nuevo plan diario de Nuggets · Desafío de actualización de abril", haga clic para ver los detalles del evento .

Modo de combinación

El patrón compuesto, también conocido como patrón de parte entera, se utiliza para tratar un grupo de objetos similares como un solo objeto. El patrón de composición compone objetos de acuerdo con una estructura de árbol, que se utiliza para representar partes y jerarquías completas. Este tipo de patrón de diseño es un patrón estructural que crea una estructura de árbol de grupos de objetos.

Este patrón crea una clase que contiene su propio grupo de objetos. Esta clase proporciona una forma de modificar el mismo grupo de objetos.

Usamos el siguiente ejemplo para demostrar el uso del patrón combinado. El ejemplo demuestra la jerarquía de los empleados en una organización.

Rol: combine objetos en una estructura de árbol para representar una jerarquía de "parte-todo". El modo compuesto permite a los usuarios utilizar objetos individuales y objetos compuestos de forma coherente.

Por ejemplo, la estructura de árbol del departamento,

public class Dept {
   private String name;
   private String parentId;
   private List<Dept> children;
   }
复制代码

CascaderEstructura de selección en cascada en el elemento

const options = [
  {
    value: 'guide',
    label: 'Guide',
    children: [
      {
        value: 'disciplines',
        label: 'Disciplines',
        children: [
          {
            value: 'consistency',
            label: 'Consistency',
          },
          {
            value: 'feedback',
            label: 'Feedback',
          },
          {
            value: 'efficiency',
            label: 'Efficiency',
          },
          {
            value: 'controllability',
            label: 'Controllability',
          },
        ],
      },
      ]
  }
复制代码

patrón decorador

El Patrón Decorador permite agregar nuevas funcionalidades a un objeto existente sin cambiar su estructura. Este tipo de patrón de diseño es un patrón estructural, que actúa como un envoltorio alrededor de una clase existente.

Este patrón crea una clase decorada que envuelve la clase original y proporciona funcionalidad adicional mientras mantiene la integridad de las firmas de métodos de la clase.

Rol: agregue dinámicamente algunas responsabilidades adicionales a un objeto. El patrón decorador es más flexible que la subclasificación en términos de agregar funcionalidad.

Por lo general, la clase de decoración contiene un objeto de la clase original, que es equivalente a una clase contenedora, que es una extensión de la función de la clase original.

La corriente InputStream en jdk es un patrón decorador típico, y sus subclases tienen

  • ByteArrayInputStream

  • FileInputStream

  • Flujo de entrada canalizado

  • SecuenciaEntradaFlujo

  • FilterInputStream

    public class FilterInputStream extends InputStream {
        // 包含了一个原类对象
        protected volatile InputStream in;
    }
    复制代码

    Envoltura de primavera

    BeanWrapperEs una interfaz de clase contenedora y su clase de implementación BeanWrapperImplrecibe un objeto Object para el procesamiento de envoltura.

    public BeanWrapperImpl(Object object) {
        super(object);
      }
    ​
      /**
       * Create a new BeanWrapperImpl, wrapping a new instance of the specified class.
       * @param clazz class to instantiate and wrap
       */
      public BeanWrapperImpl(Class<?> clazz) {
        super(clazz);
      }
    ​
    复制代码

El modo decorativo es como ponerse ropa, envolver y expandir capa por capa.

\

Supongo que te gusta

Origin juejin.im/post/7087488256836648991
Recomendado
Clasificación