如有转载,请申明:
转载至 http://blog.csdn.net/qq_35064774/article/details/52035363
代码重构追求的原则是将行为尽量移动到结构的高端,而将状态尽量移动到结构的低端。
1995年,Auer曾在文献[AUER95]中指出:
(1) 应当根据行为而不是状态定义一个类。也就是说,一个类的实现首先建立在行为的基础之上,使用间接的引用而不是直接的引用。换言之,应当使用取值方法而不是直接引用属性。
(2) 在实现行为时,是用抽象状态而不是具体状态。如果一个行为涉及到对象的状态时,使用间接引用而不是直接的引用。换言之,应该使用取值方法而不是直接引用属性。
(3) 给操作划分层次。一个类的行为应当放到一个小组的核心方法里面,这些方法可以很方便地在子类中加以置换。
(4) 将状态属性的确认推迟到子类中。不要再抽象类中过早的声明属性变量,应将它们尽量地推迟到子类中去声明。在抽象超类中,如果需要状态属性的话,可以调用抽象的取值方法,而将抽象的取值方法的实现放到具体子类中。