本文仅供学习交流使用,侵权必删。
不作商业用途,转载请注明出处
WHAT 什么是策略模式
策略模式(Strategy Design Pattern),定义一族算法,每种算法独自封装起来,让每个算法可以相互替代。策略模式就是让算法间的变化可以独立于客户端
WHY 为什么使用策略模式
优点
- 避免过多if-else条件判断,提高可读性
- 提高扩展性,出现新需求导致需要添加新的处理逻辑,我们只需要添加新的算法类即可
缺点
- 如果算法过多,会导致类数量过多,较难维护
HOW 策略模式的实现(JAVA)
场景:用户在平台上查询可用额度,平台能查询接口能查询多个资方的可用额度。将不同资方的查询接口封装到一个算法类,不同资方的可用额度查询我们调用不同的算法类。
- 授信接口
/**
* 授信接口
*/
public interface ICreditService {
String availableCredit();
}
- 自营的额度查询实现
/**
* 自营的可用额度
*/
public class BdcrCreditImpl implements ICreditService {
@Override
public String availableCredit() {
System.out.println("bdcr available credit");
return "10000.00";
}
}
- 某资方的额度查询实现
public class YourbankCreditImpl implements ICreditService {
@Override
public String availableCredit() {
System.out.println("yourbank available credit");
return "20000.00";
}
}
- 可用额度查询入口类
public class CreditController {
private Map<String, ICreditService> map = new HashMap<>();
public CreditController() {
map.put("yourbank", new YourbankCreditImpl());
map.put("bdcr", new BdcrCreditImpl());
}
public String availableCredit(String type) {
ICreditService service = map.get(type);
if (service == null) {
return null;
}
return service.availableCredit();
}










网友评论