Chinaunix首页 | 论坛 | 博客
  • 博客访问: 116944
  • 博文数量: 42
  • 博客积分: 2100
  • 博客等级: 大尉
  • 技术积分: 481
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-25 21:27
文章分类

全部博文(42)

文章存档

2011年(4)

2009年(3)

2008年(9)

2007年(22)

2006年(4)

我的朋友

分类:

2008-07-27 13:17:30

混入类——更好的重用性

 

1、相关理论

混入类被定义为“一种被设计为通过继承与其他类结合的类”,它给其他类提供可选择的接口或功能。

从实现上讲,混入类要求多继承;混入类通常是抽象类,不能实例化。

混入类的作用在于:它不仅可以提高功能的重用性,减小代码冗余;而且还可以使相关的“行为”集中在一个类中,而不是分布到多个类中,避免了所谓的“代码分散”和“代码交织”问题,提高了可维护性。

 

2、混入类举例

来看一个具体项目。在一个信用卡客户服务系统项目中,要求能够以多种方式发送多种信息给用户,并能够适应未来业务的发展变化。

当前系统需要支持的发送方式:

Ø         打印(并邮寄)

Ø         Email

Ø         传真

可预见的未来要支持的发送方式:

Ø         手机短信

Ø         PDA消息

当前系统需要支持的待发送信息:

Ø         信用卡对账单

Ø         信用卡透支催收单

可预见的未来要支持的待发送信息:

Ø         信用卡新业务宣传单

Ø         信用卡促销活动宣传单

下面是一些设计考虑。一种发送方式要支持多种待发送信息,我们希望发送功能有很好的可重用性;为了方便未来加入对新的发送方式和发送信息的支持,设计必须具有良好的可扩展性。相关设计如下图所示。其中采用了混入类的OOD技巧,用一个CSendableDoc作为混入类,支持发送功能的重用;CSendalbeDoc还采用了策略模式支持发送方式的扩充。

摘抄自:

阅读(2222) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~