标签:1.2 继承 reserve orm code explicit exception 处理 record
1).调整软件内部结构,目的是在不改变软件软件可查行为前提下,提高其可理解性,降低其修改成本。
2).使用一系列重构准则,在不改变软件可查行为前提下,调整其结构
1).三次法则
2).添加功能时
3).修补错误时
4).复审代码时
1).代码太乱,重构效率低于重写效率时
2).项目接近期限时停止重构
既因为某些原因,需要不断的重复修改已有函数
既因一种变化,需要很多小的修改,且难以找到,将他们整合到一个类中
既函数需要调用其它类中的取值函数多于本类中的函数时,将该函数移至该去的地方。
既多个地方看到相同的三四笔数据项,在两个类内的值域相同,将这些数据提取到新的对象中
既少用switch和case语句,用多态去替代
既每当为一个类增加一个子类时,必须也为另一个类增加相应的子类,让一个继承体系的实体(参考,引用,refer to)另一个体系的实体。
2.12 Lazy Class
既对于没有体现其价值的类来说,可用innerClass替代
如果class中有一个复杂算法,需要好几个变量,应该把与算法有关的提取到独立的class中。
既对象之间互相依赖索求
既如果两个classes过于亲密,花费太多时间去探究彼此的private成份,请拆分他们,降低耦合度。
既两个函数做同一件事,却有着不同的签名,重命名并协调他们到一致为止。
1)移除该移除的set方法
2)将get和set方法尽量搬到该类来
既subclass复用了superclass的行为实现,却又不愿意支持superclass的接口
既过多的注释
Name
Summer
Motivation
Mechanics
Example
大函数小化,精准函数名称和函数本体之间的语义距离。
在函数调用点插入函数本体,然后移除该函数
提炼表达式为新函数,将所有引用点替换为对新的函数的调用,
将复杂函数表达式放到临时变量中,以此表达式名称来解释表达式的用途。
针对每次赋值,创造一个独立的、对应的临时变量。
以一个临时变量,取代参数的位置。
将大型函数放入一个单独的对象,如此一来局部变量就成了对象的值域。然后你可以在同一个对象中将这个大型函数分解为数个小型函数。
将函数本体替换为另一个算法
你的程序中,有个函数与其所驻class之外的另一个class进行更多交流:调用后者或被后者调用。
在server端(某个class)建立客户所需的所有函数,用以隐藏委托关系。
标签:1.2 继承 reserve orm code explicit exception 处理 record
原文地址:http://www.cnblogs.com/Devonmusa/p/6284538.html