首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

复建 对象之间搬移特性

2013-08-13 
重构对象之间搬移特性Move Field?状况:你的class中的field被另一个class更多的用到。那么在另一个class里建

重构 对象之间搬移特性

复建  对象之间搬移特性
复建  对象之间搬移特性

Move Field

?状况:你的class中的field被另一个class更多的用到。那么在另一个class里建立new field,修改旧的field。
复建  对象之间搬移特性
复建  对象之间搬移特性
复建  对象之间搬移特性

Extract Class

状况:一个类做了两个类做的事,那么建立一个新Class,将相关的Field和Method从旧Class移到新Class
复建  对象之间搬移特性
复建  对象之间搬移特性
复建  对象之间搬移特性

Inline Class状况:你的某个Class没有做太多事情(没有承担足够责任),那么将Class的所有特性搬移到另一个Class中,然后移除原Class。
复建  对象之间搬移特性
复建  对象之间搬移特性
复建  对象之间搬移特性
复建  对象之间搬移特性
Introduce Foreign Method

状况:有一个类Client需要使用的类PreviousEnd中一个额外函数,但你无法修改这个类PreviousEnd,那么你就在Client中建立一个函数,并以一个PreviousEnd实体做为参数。
复建  对象之间搬移特性
复建  对象之间搬移特性
复建  对象之间搬移特性

Introduce Local Extention

状况:你的Class需要一些额外函数,但你不能修改当前的类,那么建立一个新Class,使它包含这些函数。使用Subclass 或 Wrapper。——这个一般用于你无法修改源码的情况下使用。


?使用Subclass方法
复建  对象之间搬移特性
?或使用Wrapper
复建  对象之间搬移特性
总结

需要注意一下,“Extract Class”和“Inline Class”,”Hide Delegate“和”Remove Middle Man",都是相反的过程,具体理解,可以看前言中的那张流程图。
“Hide Delegate"我们常用于使用少量的”Delegate Method“的时候,而”Remove Middle Man“,用于调用很多”Delegate Method“的时候,我们可以直接使用Delegate Class,进行调用,而有的Delegate Method我们视情况保留一部分。
“Extract Class”和“Inline Class”,"Extract Class"经常用于承担那过多责任而变得臃肿不堪的Class中,而“Inline Class”经常用于当前的这个类”太不负责的“时候使用。——我个人是宁愿“Extract Class”,也不愿“Inline Class”。


?

热点排行