1.6.7 设计应支持变化
获得最大限度复用要求系统设计能够改进。考虑系统生命周期内会发生的变化。设计模式确保系统以特定方式变化,允许系统结构的某个方面独立变化,系统更健壮。
几点建议:
1)通过Abstract Factory、Factory Method、Prototype设计模式避免显式指定类创建对象,系统依赖实现而非接口,会让变化更复杂;
2)通过Chain of Resposibility、Command设计模式避免依赖特殊操作,可以在编译时刻或运行时刻很方便的改变响应的方法
3)通过Abstract Factory、Bridge设计模式避免对硬件和软件平台依赖
4)通过Abstract Factory、Bridge、Memento、Proxy设计模式避免依赖对象表示或实现
5) 通过Builder、Iterator、Strategy、Template Method、Visitor设计模式避免依赖算法
6)通过Abstract Factory, Command, Facade, Mediator, Observer, Chain of Responsibiliey设计模式避免紧耦合
7)通过Bridge、Chian of Responsiblity、Composite、Decorator、Observer、Strategy设计模式避免通过生产子类来扩充功能
8)通过Adapter、Decorator、Visitor设计模式方便修改类
设计模式在三类主要软件中的作用:应用、工具箱和框架
1、应用
设计模式通过减少依赖来提高内部复用性。对系统分层和限制对平台依赖,增强应用可维护性
2、工具箱
工具箱强调代码复用,它们是面向对象环境下的子程序库。
3、框架
框架是构成一类特定软件可复用设计的一组相互协作的类。规定了应用的体系结构。设计模式使框架获得更高程度的设计复用及代码复用。