使用策略模式和多态去掉switch

为了更好的扩展性,可以“使用策略模式和多态去掉switch”(业务逻辑层适用,界面表现层除外,会增加代码的复杂度)。

 

“使用策略模式和多态去掉switch”的思想如下:

多处使用相同switch时(我觉得这个是前提,如果只有一处使用switch,而且后面基本上不会再扩展,那简单封装一下就可以了,毕竟时间那么宝贵,为啥还多去折腾一下呢?),

1、先将switch代码块封装到一个新class的方法中;

2、然后设计一个抽象基类,它的抽象方法至少包括“获取switch对应的各个type”、“switch对应的各个type下的操作”;

3、再新建多个子类,继承于抽象基类并实现其中的抽象方法;

4、最后,在第一步创建的新class中会声明一个抽象基类变量,封装的switch代码块方法中会根据调用方法时传入的type值,多态的去实例化子类,然后调用子类的实现方法。

 

具体的代码实现网上也比较多了,这里可以参照一下https://blog.csdn.net/chens616/article/details/85037089

当然,理解了“使用策略模式和多态去掉switch”的思想,那对oo的封装、继承、多态和策略模式的理解也会更进一步。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值