战术目标:控制实现、测试、和部署变更的时间和成本。
战术手段:1、局部化修改
A、维持语义的一致性。(*语义的一致性是指模块中责任之间的关系,目标是确保所有这些责任都能协同工作,不需要过多得依赖别的模块。子战术:”抽象通用模块“。)
B、预期期望的变更。(*子战术:泛化该模块;限制可能的选择。)
2、防止连锁反应
A、信息隐藏(*最大化实现模块分解,最大化的隐藏私有信息)
B、维持现有的接口。添加接口(*来维持现有接口签名);添加适配器(*包装原类,并提供原始签名);提供一个占位程序
C、限制通信路径(*减少共享数据数量)
D、使用仲裁者。
3、推迟绑定时间。
A、运行时注册(*即插即用)
B、配置文件(*启动时设置参数)
C、多态(*后期绑定)
D、组件更换(*允许载入时间绑定)
E、遵守已定义的协议(*允许独立进程的运行时绑定)