1.面向可维护性的构造技术
评价可维护性的指标,可以使用圈复杂度、代码行数、继承的层次数、类之间的耦合度、单元测试的覆盖度等,简单来讲就是代码的复杂程度。
可维护性的5个指标:
1.可分解性:将问题分解为各个可独立解决的子问题
2.可组合性:可容易的将模块组合起来形成新的系统
3.可理解性:每个子模块都可被系统设计者容易的理解
4.可持续性:规格说明小的变化将只影响一小部分模块,而不会影响整个体系结构
5.出现异常之后的保护 :运行时的不正常将局限于小范围模块内
面向可维护性编程的5个规则:
1.直接映射:模块的结构与现实世界中问题领域的结构保持一致
2.尽可能少的接口:模块应尽可能少的与其他模块通讯
3.尽可能小的接口:如果两个模块通讯,那么它们应交换尽可能少的信息
4.显式接口:当A与B通讯时,应明显的发 生在A与B的接口之间
5.信息隐藏:经常可能发生变化的设计决策应尽可能隐藏在抽象接口后面
2.面向对象编程的准则:SOLID
▪ (SRP) The Single Responsibility Principle 单一责任原则:ADT中不应该有多于1个原因让其发生变化,否则就拆分开
▪ (OCP) The Open-Closed Principle 开放-封闭原则:模块的 行为应是可扩展的,从而该模块可表现出新的行为以满足需求的变化,但模块自身的代码是不应被修改的
▪ (LSP) The Liskov Substitution Principle Liskov替换原则:子类型必须能够替换其基类型,派生类必须能够通过其基类的接口使用,客户端无需了解二者之间的差异
▪ (ISP) The Interface Segregation Principle 接口聚合原则:不能强迫客户端依赖于它们
不需要的接口:只提供必需的接口,不应该使接口太“胖”
▪ (DIP) The Dependency Inversion Principle 依赖转置原则:高层模块不应该依赖于低层
模块,二者都应该依赖于抽象,抽象不应该依赖于实现细节,实现细节应该依赖于抽象