Java设计模式之策略模式

之前我们写逻辑判断的时候,在不同的业务类型时反复if-else,那有什么方式能根据业务类型消除if-else吗 ?

1、定义所有业务需要公用的方法接口;

里面包含公用的方法getTradeBo以及一个获取支持该种交易类型的方法getSupportedTrdType;

2、根据业务类型去实现上述接口;

   设置该实现是属于哪一种交易类型或者多种交易类型;

    实现自己业务种类的方法;

    也可以设置默认执行的方法;

3、定义一个被调用入口的接口,以供别人调用

4、对出口接口进行实现

实现类除了实现上述接口,还需实现InitializingBean,并重写afterPropertiesSet方法,

private final List<TradeProcessService> tradeProcessServiceList: 注入所有实现TradeProcessService接口的实现类;

private Map<String, TradeProcessService> serviceMap:初始化容器;

afterPropertiesSet方法遍历所有实现类所支持的对应实现类;并将结果放在serviceMap容器里面;

5、根据业务类型获取对应的TradeProcessService接口实现类,并调用相关的业务方法;

获取默认的实现类;

根据业务类型获取对应的实现类;

调用方法:

TradeBO tradeBo = getDelegate().getTradeDetail(sysordid);

getDelegate(subTrdType).getTradeBO();

getDelegate(tradeBo.getSubTrdType()).deleteTrade(sysordid);

6、入口调用

private final TradeProcessWrappertradeProcessWrapper;

radeBO trade =tradeProcessWrapper.getTradeDetail(sysOrdId);

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 本系列文章参考《设计模式之禅》、菜鸟教程网以及网上的一些文章进行归纳总结,并结合自身开发应用。设计模式的命名...
    微笑兔阅读 9,389评论 0 1
  • Java设计模式之策略模式 简介 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行...
    singlezero阅读 3,192评论 0 0
  • 策略模式 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们之间可以相互替换,策略模式可以在不影响客户...
    Hansn阅读 2,999评论 0 3
  • 一、模式定义 定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。 二、模式UML结构 策略模式是对...
    这一刻_776b阅读 1,111评论 0 0
  • 1、初步认识 策略模式的定义:定义一组算法,将每个算法都封装起来,使得它们之间可以相互替换。策略模式让算法独立于调...
    川页随记阅读 3,114评论 0 0