| 问题 | 设计模式 | 描述 |
| 通过显示指定类创建对象 | 抽象工厂模式、工厂方法模式、原型模式 | 在实例化时,间接创建对象 |
| 紧耦合 | 抽象工厂模式、命令模式、外观模式、中介者模式、观察者模式和职责链模式等 | 类之间需松耦合 |
| 通过生成子类扩展功能 | 桥接模式、职责链模式、组合模式、装饰模式、观察者模式、策略模式等 | 通过生成子类来扩展功能会产生很多问题,如引起子类数量大量增加和类层次的增加。 通过对象组合技术实现功能扩展是更好的选择 |
| 对对象表示或实现的依赖 | 抽象工厂模式、桥接模式、备忘录模式、代理模式等 | 对客户隐藏对象如何表示、保存、定位或实现等。 |
| 不能方便地修改类 | 适配器模式、装饰模式、访问者模式 | |
| 对算法的依赖 | 生成器模式、迭代器模式、策略模式、模板模式、访问者模式 | 算法实现的目的是不变的,但算法本身却不是一成不变的 |
| 对软硬件环境的依赖 | 抽象工厂模式、桥接模式等 |



