美文网首页
学习笔记:设计模式之策略模式

学习笔记:设计模式之策略模式

作者: 大力papa | 来源:发表于2020-10-23 15:14 被阅读0次

本文仅供学习交流使用,侵权必删。
不作商业用途,转载请注明出处

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();
    }

持续更新...

相关文章

网友评论

      本文标题:学习笔记:设计模式之策略模式

      本文链接:https://www.haomeiwen.com/subject/upcvmktx.html