设计模式:策略模式和工厂模式

这是关于设计模式系列的第二篇文章。

  • 第一篇相关内容:在第一篇中,探讨了建造者模式,并简要讨论了模式的好处,建议未读的话先查看前两段再继续阅读本文。
  • 面临的问题:作为银行的 Java 开发团队,最初计算不同类型银行账户的月利息,只有活期和储蓄账户,后需添加两种货币市场账户,代码变得越来越复杂,维护困难,且资产融资部门希望用于计算贷款利息,计算逻辑更复杂。
  • 策略模式(Strategy pattern):可在运行时动态交换算法,先定义接口确定计算的输入和输出,再创建针对不同计算的策略类,将计算逻辑从计算器类中移出,但仍不够好。
  • 工厂模式(Factory pattern):可在不知道或不关心创建对象类型的情况下创建对象,创建工厂类封装与选择适当策略相关的逻辑,简化计算器类代码,还引入空对象(Null Object)以处理意外账户类型,最终大大简化了计算器类代码。
  • 总结:通过将各种逻辑提取为各自的策略,创建工厂封装选择策略的逻辑,并用空对象替换空检查,解决了代码因根据执行条件改变逻辑而变得过于复杂的问题,使代码更简洁、易维护。
阅读 4
0 条评论