设计:基类还是接口

一个类应设计成基类还是接口,考虑以下主要原因:

1 IS-A 还是CAN-DO关系:类型只能继承一个实现,如果派生类不具有与基类的is-a(属于)关系,则应用接口,接口意味着can-do(能做)关系。如果多种对象都具有can-do功能,则应设计为接口。 由于值类型只能从System.ValueType类型派生,所以它们不能从一个任意的蕨类派生,这种情况下下要使用接口

2 易于使用,派生类能具有基类的所有功能,而要实现接口则必须实现接口的所有成员

3一致性的实现 不管一个接口文档规范有多好,都无法保证后续的开发能百分百实现它。如果为一个基类型提供一个良好的的默认实现,那么一开始使用时就是一个能正常工作并进行良好测试的类型,以后只要按需求修改便可。

4版本控制 向基类添加一个方法,派生类将继承该方法,用户的源代码无需重新编译, 要是向一个接口添加一个新成员,会强迫接口的继承者更改其源代码并重新编译。

以上内容摘自 CLR Via(c#) 第三版

 

http;//www.itiask.com

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值