修复错误,改善性能 软件的大部分成本来自于维护阶段 在设计开发阶段就要考虑将来的可维护性easy to change
maintainability 可维护性 extensibility 可扩展性 flexibility 灵活性 adaptability 可适应性 manageability 可管理性 supportability 支持性
高内聚,低耦合
评价标准 可分解性可组合性可理解性可持续性 发生变化时受影响范围最小出现异常之后的保护 出现异常后受影响的范围最小 模块化设计规则 直接映射尽可能少的接口尽可能小的接口显示接口信息隐藏 松耦合和高内聚 耦合:测量模块之间的依赖程度 内聚:测量一个模块的功能之间得紧密性不应该有多于一个原因让你的ADT发生变化,否则就拆分开 一个类,一个责任
不能强迫客户端依赖于他们不需要的接口,只提供必须的接口
抽象的模块不因依赖于具体的模块 具体应依赖于抽象 delegation时候,用interface建立联系
通用责任分配模式,关于如何为类和对象指派职责的一系列原则