有时候你会看到两个类过于亲密, 花费太多的时间探究彼此的private成分. 如果这发生在两个"人"之间, 我们不必做卫道士: 但对于类,我们希望它们严守清规.
就像古代恋人一样, 过分狎昵的类必须拆散. 你可以采用Move Method 和 Move Field 帮它们划分界限, 从而减少狎昵行径. 你可以可以看看是否可以运用* Change Bidirectional Association to Unidirectional (将双向关联改为单向关联)* 让其中一个类对另一个斩断情丝. 如果两个类实在是情投意合, 可以运用Extract Class 把两者的共同点提炼到一个安全的地点,让它们坦荡地使用这个新类. 或者也可以尝试运用Hide Delegate让另一个类来为它们传递相思情.
继承往往造成过度亲密, 因为子类对超类的了解总是超过超类的主管愿望. 如果你觉的该让这个孩子独立生活了, 请运用Replace Inheritance with Delegation 让它离开继承体系.
网友评论