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.
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-else
ló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;