对函数的重构方法程序员
在面向对象的设计中,决定把责任放在哪里。算法
先使用移动字段,在移动方法数据库
Hide Delegate编程
局限性是每当客户要使用受托类的新特性时,就必须在服务段添加一个简单委托函数,受托类的特性愈来愈多,这一过程会愈来愈痛苦。设计模式
简单委托关系数组
动机session
何时隐藏多线程
怎么隐藏架构
对于这个类的任何修改都应该经过该类的方法。类拥有一些数据却无所觉,拥有一些依赖无所觉是很是危险的。因此才要封装字段,封装集合,监视数据,用对象替代数组,用对象替代集合,关联改动。app
Change Unidirectional Association to Bidirectional
动机
何时改动
怎么实现
添加一个反向指针,并使修改函数可以同时更新两条链接。
在被引用的类中增长一个字段,保存反向指针。
控制端和被控制端
在被控端创建一个辅助函数,负责修改反向指针
若是既有的修改函数在控制端,让它负责控制修改反向指针
若是既有的修改函数在被控端,就在控制端创建一个控制函数,并让既有的修改函数调用这个新建的控制函数,来控制修改反向指针。
全部的数据都应该隐藏起来。
Extract Superclass
动机
何时作
怎么作
新建一个空白抽象类
Separate Domain from Presentation
动机
何时作
怎么作
将领域逻辑分离出来,为它们创建独立的邻域类。
为每一个窗口创建一个领域类,
若是窗口内含有一张表格,新建一个类来表示其中的行,再以窗口所对应之领域类中的一个集合来容纳全部行领域对象
检查窗口中的数据,若是数据只被用于UI,就把它留着,若是数据被领域逻辑使用,并且不显示与窗口上,咱们就可使用移动方法将它搬移到领域类中,若是数据同时被UI和领域逻辑使用,就对它实施复制被监视数据,使它同时存在于两处,并保持两处之间的同步。
展示类中的逻辑,实施提炼方法将展示逻辑从邻域逻辑中分开,一旦隔离了邻域逻辑,在运用搬移方法将它移到邻域类。