自己复习看的 内容不够严谨
可维护性的设计
构造代码时候注意这些要点:
- 继承的层次数
- 类之间的耦合度
- 单元测试的覆盖度
可分解性-Decomposability
将问题分解为各个可独立解决的子问题,来使模块之间的依赖关系最小化
可组合性-Composability
将合适的模块组合成新的系统,使模块可以在不同环境下复用
可理解性-Understandability
每个模块都能被人类读者顺利理解,说白了就是易读性
可持续性-Contiuity
小的规约变化只会影响一小部分模块,而不会影响整体结构,我理解就是参数或者接口啥的整体互相关联的协作结构不变,具体内容数值啥的变一变问题不大,出现变动导致不了多少代码的重写应该就可
保护性-Protection
运行时的不正常影响只会局限地波及一小部分模型
五个模块设计规则
- 直接映射
- 尽可能少的接口
- 尽可能小的接口
- 显示接口
- 信息隐藏
- 模块间的耦合度由模块间的接口数量和每个接口的复杂度两点决定
- 内聚度是模块内部功能和责任的强关联性的衡量,如果模块的所有元素都为了同一目标运作那么内聚度就是高的。
- 高内聚低耦合是好的设计构造
- 单一责任原则: 每个接口尽量只负责专一的功能实现,小一些纯净一些。
- 对扩展性开发对修改封闭:模块的行为是可扩展的,从而可以表现出新的行为来满足需求的变化;但模块自身的代码是不应该被修改的,扩展行为一般是通过修改模块的内部实现,如果模块不能被修改啧通常被认为具有固定的行为。
总而言之,让类保持责任单一接口稳定