创建松耦合的类

http://book.csdn.net/bookfiles/173/1001737789.shtml

....

从这段代码可以看 出,FontPropertiesPanel类中有对父类SampleTextFrame的引用,并当字体的某个属性变化时,调用父类中的 refreshDisplayFont()方法。乍一看,该设计是能够接受的,但实际上有个很大的缺点:这两个类无法单独使用。也就是 说,SampleTextFrame类与FontPropertiesPanel类是紧密耦合的,因而非常不适合重用。如果想让FontPropertiesPanel作为SampleTextFrame之外的用户界面组件的一部分,以目 前这种形式是不可行的,因为在当前设计中,该类只能与SampleTextFrame实例共同运作 。图2-2显示了这两个类之间的关系。

图2-2 FontPropertiesPanel类对 SampleTextFrame类的依赖

大大限制了FontPropertiesPanel类的重用潜力

由于FontPropertiesPanel类中提 供的功能可能会用到其他上下文环境中,只有断开与SampleTextFrame的耦合,该类才适合重用。现存的依赖性是由于 FontPropertiesPanel类直接调用了refreshDisplayFont()方法,因而不但使FontPropertiesPanel 依赖于SampleTextFrame的存在,而且还依赖于refreshDisplayFont()方法的实现。很明显,应该用某种手段将字体变化通知文字显示功能,使FontPropertiesPanel与 SampleTextFrame成为松耦合

解决该问题有一个简单而又强大的办法:将类耦合到接口上而不是另一个类上

类 设计中的另一个重点:如果将功能分配给一个类,那么该类就应该包含执行该功能所需的信息。

创建 可重用类的另一个重要准则是,将功能划分为两部分:公用的、可重用的功能程序专用的、不可重用的功能 。有了这样的划分,就能够将公 用功能放在父类 中,而把应用程序专用的逻辑功能放到子类 中,提高可重用性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值