[Combate real del proyecto] Modo visitante del modo de diseño

1. ¿Cuál es el patrón de visitantes?

El patrón de visitante es un patrón de diseño
El patrón de visitante es un patrón de diseño de comportamiento,

El patrón de visitante puede realizar algunas operaciones en cada elemento de la colección sin modificar la clase de colección.
El propósito del patrón visitante es extender un objeto sin modificar su estructura.
El modo de visitante puede proporcionar múltiples métodos de acceso para cada elemento del objeto agregado sin cambiar los elementos del objeto agregado, es decir, cada elemento del objeto agregado tiene múltiples objetos de visitante.

En segundo lugar, las características y ventajas e inconvenientes de la modalidad visitante.

Las características principales del patrón de visitante son las siguientes:
El patrón de visitante puede extender el objeto sin modificar la estructura del objeto.
El patrón de visitante permite que múltiples visitantes accedan al mismo objeto al mismo tiempo, logrando así el polimorfismo.
El patrón de visitante permite que el objeto visitante decida por sí mismo qué hacer al acceder al objeto.

Las principales ventajas del patrón de visitante son las siguientes:
en línea con el principio de responsabilidad única, el almacenamiento y la operación de datos son implementados por la clase de estructura de objeto y la clase de visitante, respectivamente.
Las ventajas de este algoritmo son: simple y fácil de implementar, alta eficiencia y puede resolver algunos problemas complejos.

Las principales desventajas del patrón de visitante son las siguientes:
Inversión de dependencia, los elementos específicos son visibles para el visitante, lo que viola el principio Dimit.

3. Escenarios de uso del modo visitante

El patrón de visitante generalmente se usa para resolver algunos problemas que requieren atravesar o manipular objetos.
La estructura del objeto es relativamente estable, pero su algoritmo de operación cambia con frecuencia.
Es necesario realizar varias operaciones en una estructura de objeto, y los elementos constitutivos del objeto son diferentes.

Cuarto, un ejemplo del uso del patrón de visitante

El siguiente es un ejemplo del uso del patrón de visitante: supongamos que tenemos una colección que contiene varios elementos y queremos realizar algunas operaciones en cada elemento de esta colección, por ejemplo: aumentar un número, disminuir un número, verificar si el elemento es para números pares, etc. Podemos usar el patrón de visitante para resolver este problema:

Primero, defina una interfaz de visitante abstracta que contenga las operaciones que el objeto visitante debe realizar.

public interface Visitor {
    
    
    void visit(int element);
}

Luego, defina una clase de visitante específica, que implemente la interfaz de visitante e implemente operaciones específicas.

public class ConcreteVisitor implements Visitor {
    
    
    @Override
    public void visit(int element) {
    
    
        // 对元素执行操作
    }
}

A continuación, defina una clase de colección que contenga varios elementos y proporcione un método que permita al objeto visitante acceder a cada elemento de la colección.

public class Set {
    
    
    private List<Integer> elements = new ArrayList<>();

    public void add(int element) {
    
    
        elements.add(element);
    }

    public void accept(Visitor visitor) {
    
    
        for (int element : elements) {
    
    
            visitor.visit(element);
        }
    }
}

Finalmente, use el patrón de visitante para realizar alguna operación en cada elemento de la colección.

public class Main {
    
    
    public static void main(String[] args) {
    
    
        Set set = new Set();
        set.add(1);
        set.add(2);
        set.add(3);
        set.add(4);
        set.add(5);

        ConcreteVisitor concreteVisitor = new ConcreteVisitor();
        set.accept(concreteVisitor);
    }
}

Supongo que te gusta

Origin blog.csdn.net/wstever/article/details/129913066
Recomendado
Clasificación