重构 — 改善既有的类图设计 条款10:将多个接口的实现类合并成一个

重构 — 改善既有的类图设计 条款10:将多个接口的实现类合并成一个

黄国强 2008-9-25


    在 条款7中(http://acloudblog.blog.sohu.com/89393080.html)我们谈到“现实的例子,比如一个小公司,就老板一个人,他就要从事从总经理到员工所有的职位的工作。面对不同的客户,他拿出不同职位的名片。随着公司的发展,他会按职位招聘一些符合这些职位的人。让这些人分担他的职责。”
    我这里有一个相反的例子。在这里例子中把多个实现合并到一个实现中。去除了很多重复的代码。

图一
    先看图一。在图一中,C_A 和 C_B 分别从接口 A 和接口 B 继承。C_A 和 C_B 都需要访问 C_Other 读取大量数据分别提供给接口 A 和接口 B 的使用者。这个具体例子中,接口 A 和接口 B 是为针对不同的授权而设计的。接口 B 是 接口 A 的子集,换句话说,接口 B 的接口函数在接口 A 中都有相似的存在。接口 A 中多出来的接口函数是为一些授权等级更高的客户设计的。

图二
图二是重构后的图,重构的办法是将 C_B 取消,C_B 的实现改由 C_A 实现。结果少了很多重复代码。
按本条款重构的关键是,接口 A 和接口 B 有大量重复的接口函数。如果不符合此条件,就不能按此条款重构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

acloud_csu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值