外观模式 | 策略模式 | |
---|---|---|
定义 | 对外暴露统一简单的API界面,根据不同的策略配置来选取不同的策略服务。 | 定义不同的算法族,并且之间可以互相替换;让算法的变化独立于使用算法的客户,以动态的改变对象的行为。 |
特点 | 外观类,需要了解所有的子系统的方法和属性,进行组合,以备调用。 | 封装了算法的变化。可以与简单工厂模式结合。 |
原则 | 低耦合、依赖倒转原则、迪米特法则 | 低耦合、简化单元测试 |
区别 | 将所有子类都注入,再根据实际需要调用相应对象的方法。 | 只实现所需要的子类对象。 |
例子 | 基金与股票 | 商场促销打折的收银 |
- 外观模式结构图
- 策略模式结构图
【备注】
结构图取自《大话设计模式》。