重构-改善既有代码的设计

吃可爱长大的小学妹 提交于 2019-12-02 15:28:59

1 Add Parameter(添加参数)

为此函数添加一个对象参数,让该对象带进函数所需要的信息
注意:
检查函数签名是否被超类or子类实现过,如果是,则需要针对每份实现分别进行下列步骤
声明一个新函数,名称与原函数相同,只是加上新添加的参数,将就函数的代码复制到新函数中
修改就函数,令它调用新函数
删除旧函数,如果旧函数是该类public接口的一部分,你可能无法安全的删除它,这种情况下,将它保留在原地,并将它标示为deprecated(建议不适用)

2 Change Bidirectional Asociation to Unidirectional(将双向关联改为单向关联)

使用取值函数,不ton过指针取得被引用对象,如果有可能,对取值函数使用substitute algorithm,从而让客户在没有指针的情况下也可以使用该取值函数
对于使用该字段的所有函数,考虑将引用对象作为参数传进去
如果硬没有任何函数使用待删除字段,移除所有对该字段的更新逻辑,然后移除该字段。

3 Change Unidirectional Association To Bidirectional(将单向关联改为双向关联)

两个类都需要使用对方的特性,但其间只有一条单向链接,添加一个反向指针,并使修改函数能够同时更新两条链接

在被引用类中增加一个字段,用以保存反向指针
决定由哪个类-引用端还是被引用端-控制关联关系
在被控制端建立一个辅助函数,其命名应该清楚指出它的有限用途
如果既有的修改函数在控制端,让它负责更新反向指针
如果既有的修改函数在被控端,就在控制端建立一个控制函数,并让既有的修改函数调用这个新建的控制函数

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!