最容易懂的策略模式消除if-else分支,实现开闭原则,提高可扩展性

科技资讯 投稿 7300 0 评论

最容易懂的策略模式消除if-else分支,实现开闭原则,提高可扩展性

1 介绍

if-else,这里所说的if-else并不是说任何简单的判断都引入策略模式来优化,这样反而会增加代码的复杂度。

boolean类型的变量进行优化

2 背景

if-else来判断申请单的类型,并对不同的申请单做不同的处理。

if-else分支也变得臃肿,而且每次新增申请单的时候,都需要在后面再加一个分支,不仅破坏了开闭原则,而且可读性极差,也不利于扩展。

3 引入策略接口

doDetail(即可

4 引入策略上下文对象

applycationContext 来获取策略接口的所有实现类,在策略上下文对象完成初始化后,将实现类注册到 map 中。(@PostConstruct:在bean初始化完成后处理一些逻辑)

5 客户端调用

6 总结

关于策略上下文对象使用集合存储所有策略的解释:使用 Map 来存储,需要一个key来标识使用哪种策略来处理。

编程笔记 » 最容易懂的策略模式消除if-else分支,实现开闭原则,提高可扩展性

赞同 (35) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽