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在对象之间搬移特性的主要内容,如果未能解决你的问题,请参考以下文章

重构.改善既有代码的设计7在对象之间搬移特性(如何优化类)

第3章 在对象之间搬移特性:提炼类类的内联化

学习重构-在对象之间搬移特性

写Bug时,需要注意的几点3

如何组织代码

如何组织代码