重构 — 改善既有的类图设计 条款3:用 FACADE 类消除依赖关系的交叉

重构 — 改善既有的类图设计
条款3:用 FACADE 消除依赖关系的交叉

黄国强 2008/5/8

有 些网友对条款2不是很赞同,认为看惯了基类在上面,继承类在下面的图。认为还是原来的清晰。关于这点,我从两个方面解释一下。其一,在一个分层设计中,依 赖关系箭头一般都是从上指向下的,而基类在上面,继承类在下面的图正好和总体设计图相反。风格上并不统一。其二,一般静态结构图主要表现静态的结构,我个 人把一些动态因素也融合进去,需要这样的调整。也算是我的一点创新。
下面继续进行本系列的第三个条款。先看一个从真实的设计类图中提取出来的例子。为避免侵犯商业秘密,类名全部换掉了,前面的图也是基于类似原因起名。
图 1

图中大量的交叉关系让人很不舒服,不知道你的感觉如何。
改进图见图 2
图 2

图 2 中在原先的两个层次的多个类中插入了一个 FACADE 类,没有了交叉,这张图好看了很多。

解释一下:
从最简单的编程角度看,图 2 带来的好处是,处在两个层次上层类中无需保存多个下层类的指针。从而简化了调用关系。而且,随着项目的发展,我们可以很容易的用 FACADE 类将下层类对上层隐藏起来。FACADE 的详细解释可以参见设计模式的相关模式。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

acloud_csu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值