混淆点
一、策略模式与状态模式
1、相同点:
1、都是消除 if else
2、 实现方式类似,uml类图都相同
2、不同点:
1、状态模式重点在各状态之间的切换做不同的事情,而策略模式更侧重于根据具体情况选择策略,
并不涉及切换。
2、状态模式不同状态下做的事不同,策略模式下做的都是同一件事。
例如:聚合支付宝平台有支付宝支付,微信支付,银联支付… 都是支付。
反之状态模式下,各个不同的状态,都是同一个方法,做的事都不一样。
一、责任链模式与状态模式
1、相同点
1、 都是消除 if else
2、 责任链模式更像 解耦 switch, 状态模式更像 解耦 if else。
2、不同点:
1、状态模式的业务对象只负责改变其拥有类的状态属性,而不负责去执行下一个状态的方法,
执行还需要通过拥有他的类去调用下个状态子类的方法。
而职责链模式的每个管理者则是既负责处理问题也负责请求的递交。
