分类:
2008-07-27 13:17:30
1、相关理论
混入类被定义为“一种被设计为通过继承与其他类结合的类”,它给其他类提供可选择的接口或功能。
从实现上讲,混入类要求多继承;混入类通常是抽象类,不能实例化。
混入类的作用在于:它不仅可以提高功能的重用性,减小代码冗余;而且还可以使相关的“行为”集中在一个类中,而不是分布到多个类中,避免了所谓的“代码分散”和“代码交织”问题,提高了可维护性。
2、混入类举例
来看一个具体项目。在一个信用卡客户服务系统项目中,要求能够以多种方式发送多种信息给用户,并能够适应未来业务的发展变化。
当前系统需要支持的发送方式:
Ø 打印(并邮寄)
Ø Email
Ø 传真
可预见的未来要支持的发送方式:
Ø 手机短信
Ø PDA消息
当前系统需要支持的待发送信息:
Ø 信用卡对账单
Ø 信用卡透支催收单
可预见的未来要支持的待发送信息:
Ø 信用卡新业务宣传单
Ø 信用卡促销活动宣传单
下面是一些设计考虑。一种发送方式要支持多种待发送信息,我们希望发送功能有很好的可重用性;为了方便未来加入对新的发送方式和发送信息的支持,设计必须具有良好的可扩展性。相关设计如下图所示。其中采用了混入类的OOD技巧,用一个CSendableDoc作为混入类,支持发送功能的重用;CSendalbeDoc还采用了策略模式支持发送方式的扩充。
摘抄自: