您的位置:首页 > 其它

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

2008-09-25 14:42 447 查看
重构 — 改善既有的类图设计 条款10:将多个接口的实现类合并成一个

黄国强 2008-9-25[/b]

条款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 中多出来的接口函数是为一些授权等级更高的客户设计的。



[align=center]图二
[/align]图二是重构后的图,重构的办法是将 C_B 取消,C_B 的实现改由 C_A 实现。结果少了很多重复代码。
按本条款重构的关键是,接口 A 和接口 B 有大量重复的接口函数。如果不符合此条件,就不能按此条款重构。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐