Dos patrones de diseño de Java: Modo Estrategia

introducción

En este documento se describe el contenido del patrón de estrategia. El modo principal a explicar lo que es la estrategia y cómo utilizar las ventajas y desventajas correspondientes.

  • Modo Estrategia Introducción
  • El código de ejemplo
  • resumen

En primer lugar, la presentación patrón de estrategia

Al final lo que es el patrón de estrategia aquí? De acuerdo a mi propia comprensión, en fin, tendrá las propiedades de la tarea de una clase de lógica de negocio unificado está encapsulado, el llamante puede de acuerdo a sus propios escenarios de negocio y es necesario, llame a la estrategia de negocio.
Aquí Insertar imagen Descripción
La figura entiende por la política relacionada con el módulo de modo incluye los siguientes tres aspectos:
1, el entorno de políticas: política de clase contiene referencias;
2, Estrategia Resumen: política comportamiento abstracto pública, la política contiene todo el método de interfaz;
3, política específica implementación: encapsula diferentes algoritmos de estrategia;

En segundo lugar, el código de ejemplo

1, la escena política

public class StrategyContext {
    //持有一个具体策略的对象
    private Strategy strategy;
    /**
     * 构造函数,传入一个具体策略对象
     * @param strategy    具体策略对象
     */
    public StrategyContext(Strategy strategy){
        this.strategy = strategy;
    }
    /**
     * 策略方法
     */
    public void contextInterface(){
        
        strategy.strategyInterface();
    }
    
}

2, interfaces de estrategia

public interface Strategy {
    /**
     * 策略方法
     */
    public void strategyInterface();
}

3, la aplicación de políticas

public class StrategyA implements Strategy {

    @Override
    public void strategyInterface() {
        //相关的业务
    }

}
public class StrategyB implements Strategy {

    @Override
    public void strategyInterface() {
        //相关的业务
    }

}

4, utilizando estrategias

public class ContextClient {
	public static void main(String[] args) {
		Strategy  StrategyA = new StrategyA();
		StrategyContext contextA = new StrategyContext(StrategyA );
		//调用策略A的执行方法
		contextA.contextInterface();
	}
}

En tercer lugar, el resumen

Estrategia escenarios de uso patrón para el algoritmo para extraer el paquete, independientemente de escenarios de llamadas.

Ventaja de la patrón de estrategia:
1, cuando hay lógica de determinación de código de servicio múltiple, para evitar un gran número de modo de política if-elselógica de código juicio para evitar confusiones, mantenibilidad código mejorada;
2, la parte pública de la estrategia puede ser muy abstracto, para evitar códigos de repetición;

Desventaja del patrón de estrategia:
1, la persona que llama debe conocer toda la clase de implementación de la estrategia, lo que aumenta la dificultad de utilizar la persona que llama;
2, si se considera más lógico, entonces, dará lugar a más clase de implementación de la estrategia;

Publicado 88 artículos originales · ganado elogios 49 · Vistas de 100.000 +

Supongo que te gusta

Origin blog.csdn.net/Diamond_Tao/article/details/101904497
Recomendado
Clasificación