H5W3
当前位置:H5W3 > java > 正文

【Java】一天一个设计模式–策略模式

包含角色

  • context 策略使用者
  • strategy 策略(行为)接口
  • strategyImpl 策略的具体实现,通常这些实现也叫算法族

场景案例

demo1-佣金核算

// 核算接口
public interface ICalculate{
query();
clear();
calculate();
belong();
}
// A类型业绩核算
public class ACalculate implements ICalculate{
// A类型具体实现
query();
clear();
calculate();
belong();
}
// B类型业绩核算
public class BCalculate implements ICalculate{
// B类型具体实现
query();
clear();
calculate();
belong();
}
// 其他类型...
// 使用策略模式优化
// 1. 将核算环节抽象为行为接口,即核算过程有哪些行为
// 2. 行为接口可以有不同的具体实现,这些实现类可以看成是一个算法族
// 3. 通过组合的方式,使核算过程变化多样
// 查询策略
public interface Query{
query();
}
// 查询策略算法族
public class TypeAQuery{
query(){
//typeA logic
}
}
public class TypeBQuery{
query(){
//typeB logic
}
}
// 清空策略
public interface Clear{
clear();
}
'其他策略(行为) ...'
// 业绩类型A的核算
public class ACalculate {
// 自定义核算环节,自定义核算环节具体实现
private Query query;
}
// 业绩类型B的核算
public class BCalculate {
// 自定义核算环节
private Query query;
private Clear clear;
}
// 调用过程中,通过set()方法可以动态替换策略的实现

本文地址:H5W3 » 【Java】一天一个设计模式–策略模式

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址