clean code 之 类篇

来源:互联网 发布:matlab算矩阵乘法 编辑:程序博客网 时间:2024/05/18 01:51

1.类的组织

类的组织遵循标准的Java约定:

变量

变量又称为实体,变量的顺序应该为:公共静态变量–>私有静态变量–>私有实体变量–>公共变量
注意1:公共静态变量应该尽可能存在同一个地方便于管理
注意2:Java类中很少使用公共变量,应该采用属性的方式来进行变量的访问和修改

属性

属性及get和set在紧跟私有实体变量。

函数

遵循自顶向下原则,公共函数–>私有函数


2.类要短小

类要短小,判断标准是是否遵循以下三个原则。类要短小会是类的数量巨增,数量巨大的短小单一目的的类会导致代码难于管理,其实,只要分好类,做好标记,相当于将东西归置到不同的小抽屉中,而不是胡乱的放入几个大抽屉中,这样及方便查找也方便修改和维护。

2.1单一职责原则

单一职责SRP(Single-Responsibilitv Principle),每个类只有一个权责,只有一条理由去修改。只做一件事情,例如只做打印、只做转换、只做算法处理等。如果一个类做的事情太多,那就应该对它进行拆解,拆解成只多个有单一权责的类,这样功能做修改的时候就省略回归测试。

2.2高内聚低耦合

在遵循单一职责的基础上,提高类间的聚合性,类间的聚合性是指类中的函数应该尽可能多操作类中的实体变量,所以内聚性=(函数使用实体的总数)/(实体总数*函数总数),当然内聚性等于1的基本上不太可能。提高内聚性可以从拆解大函数和大类入手:

拆解大函数

如果一个函数过大,可以将它进行重构拆解出多个小函数,如果小函数分离是需要传递参数,可以将传递的参数作为类的实体变量,从而去掉参数的传递,这样各个函数的功能比较单一,引发的问题是实体变量增多,从而内聚性降低,类会变大。

拆解大类

拆解大类,遵守单一职责原则就可以了。


3.适应修改

对于多数系统来说,修改将一直在持续,在系统中最重要的一条规则就是开放闭合原则OCP(Open-Close Principle),实现开放OCP目标遵循两个原则:

面向抽象编程OAP(Oriented Abstract Program)

抽象是稳定的,实现是易变的,这里的抽象表现在两个方面:业务抽象和具体抽象(抽象类和接口)

依赖导致原则DIP(Dependency Inversion Principle)

也是Spring框架的核心

隔离原则IP(Isolation Principle)

类和类之间要相互隔离,做到修改时影响最小,添加时,通过扩展而非修改来实现

0 0
原创粉丝点击