狎昵关系和依恋情结辨诠

Posted CSU迦叶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了狎昵关系和依恋情结辨诠相关的知识,希望对你有一定的参考价值。

Inappropriate Intimacy(狎昵关系)

表现:两个classes过于亲密,花费太多时间去探究彼此的private成分
解决:你可以采用 Move MethodMove Field 帮它们划清界线,从而减少狎昵行径。你也可以看看是否运用 Change Bidirectional Association to Unidirectional 让其中一个class对另一个斩断情丝。如果两个实在是情投意合,可以运用Extract Class 把两者共同点提炼到一个安全地点,让它们坦荡地使用这个新class。或者也可以尝试运用 Hide Delegate 让另一个class来为它们传递相思情。
继承(inheritance)往往造成过度亲密,因为subclass对superclass的了解总是超过superclass的主观愿望。如果你觉得该让这个孩子独自生活了,请运用Replace Delegation with Inheritance 让它离开继承体系。

参考文档:Inappropriate Intimacy(狎昵关系)

表现:函数对某个class的兴趣高过对自己所处之host class的兴趣。
原则:判断哪个class拥有最多「被此函数使用」的数据,然后就把这个函数和那些数据摆在一起。
解决:使用Move Method 把函数移到它该去的地方。有时候函数中只有一部分受这种依恋之苦,这时候你应该使用 Extract Method 把这一部分提炼到独立函数中,再使用Move Method 带它去它的梦中家园。

参考文档:Feature Envy(依恋情结)

共同点:都可以用搬移方法、搬移字段来重构,依恋情结更像是狎昵关系的子集,依恋情结是函数的坏味道,狎昵关系则是两个类之间的,但是类终究是函数和字段组成的。

以上是关于狎昵关系和依恋情结辨诠的主要内容,如果未能解决你的问题,请参考以下文章

社会心理学(第八章)人际吸引 小结摘抄

爱你就是爱自己

[POJ2243]考研路茫茫——单词情结

汉唐情结 边塞风光 正大气象

Java面试题总结 11数据库与JVM综合篇(附答案)

考研路茫茫――单词情结 HDU - 2243(ac自动机 + 矩阵快速幂)