3在对象之间搬移特性
Posted 姬世霆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3在对象之间搬移特性相关的知识,希望对你有一定的参考价值。
1、Move Method(搬移函数) 如果一个类有太多行为,或如果一个类与另一个类有太多合作而形成高度耦合,则考虑搬移函数。 这类函数有这种特点:使用另一个对象的次数比使用自己所驻对象的次数还多。 2、Move Field(搬移字段) 和搬移函数类似,某个字段被其所驻之外的另一个类类更多的用到,则考虑将该字段移到那个类中。 3、Extract Class(提炼类) 当某个类做了应该由两个类做的事情,则建立一个新类,将相关的字段和函数从旧类搬移到新类。 特点: 1、类职责不唯一往往含有大量函数和数据。其中某些数据和某些函数总是一起出现,某些数据经常同时变化 甚至彼此相依。 2、类的子类化方式。 建议:先搬走变量,然后搬走函数。 4、Inline Class (将类内联化) 当某个类没有做太多事情,可以将这个类所有特性搬移到另一个类中,然后移除原类。 5、Hide Delegate (隐藏“委托关系”) 客户通过一个委托类来调用另一个对象。在服务类上建立客户所需的所有函数,用以隐藏委托关系。 6、Remove Middle Man(移除中间人) 某个类做了过多的简单委托动作,让客户直接调用委托类 7、Introduce Foreign Method(引入外加函数) 你需要为提供服务的类增加一个函数,但你无法修改这个类。在客户类中建立一个函数,并以第一参数形式传入一个服务类实例。 如果你发现自己为一个服务类建立了大量外加函数,或者发现许多类都需要同样的外加函数,则使用Introduce Local Extension(引入本地扩展) 8、Introduce Local Extension(引入本地扩展) 你需要为服务类提供一些额外函数,但你无法修改这个类,如果这样,你可以建立一个新类,使他包含这些额外函数。 让这个扩展品成为源类的子类或包装类。 子类化(subclassing) 包装(wrapping) 9、大纲以上是关于3在对象之间搬移特性的主要内容,如果未能解决你的问题,请参考以下文章