具体内容摘自《.NET设计模式》,以供查阅
问题--设计问题
解决需求--解决问题推荐的解决方法或设计需求
相关设计模式--解决问题相关设计模式
- 问题:通过显示指定类创建对象
解决需求:需要实例化时,间接创建对象
相关设计模式:抽象工厂模式、工厂方法模式和原型模式
- 问题:紧耦合
解决需求:需要类之间是松耦合的
相关设计模式:抽象工厂模式、命令模式、外观模式、中介模式、观察者模式和职责链模式
- 问题:通过生成子类扩展功能
解决需求:通过对象组合技术实现功能扩展
相关设计模式:桥接模式、职责链模式、组合模式、装饰模式、观察者模式和策略模式
- 问题:对对象表示或实现的依赖
解决需求:如果客户知道对象如何表示、保存、定位或实现,那么在对象发生变化时也可能发生变化,因此需要对客户隐藏这些信息
相关设计模式:抽象工厂模式、命令模式、外观模式、中介模式、观察者模式和职责链模式
//客户:我是这么理解的,是调用方,比如类B通过某种方式调用类A,则B为客户
- 问题:不能方便地修改类
解决需求:无法修改已存在的类,却又希望修改这个类
相关设计模式:适配器模式、装饰模式和访问者模式
- 问题:对算法的依赖
解决需求:在目的不变的情况下,算法需要修改时
相关设计模式:生成器模式、迭代子模式、策略模式、模板方法模式和访问者模式
- 问题:对软硬件环境的依赖
解决需求:可移植性和可维护性
相关设计模式:抽象工厂模式和桥接模式