设计:基类还是接口
2011-12-28 21:01
176 查看
一个类应设计成基类还是接口,考虑以下主要原因:
1 IS-A 还是CAN-DO关系:类型只能继承一个实现,如果派生类不具有与基类的is-a(属于)关系,则应用接口,接口意味着can-do(能做)关系。如果多种对象都具有can-do功能,则应设计为接口。 由于值类型只能从System.ValueType类型派生,所以它们不能从一个任意的蕨类派生,这种情况下下要使用接口
2 易于使用,派生类能具有基类的所有功能,而要实现接口则必须实现接口的所有成员
3一致性的实现 不管一个接口文档规范有多好,都无法保证后续的开发能百分百实现它。如果为一个基类型提供一个良好的的默认实现,那么一开始使用时就是一个能正常工作并进行良好测试的类型,以后只要按需求修改便可。
4版本控制 向基类添加一个方法,派生类将继承该方法,用户的源代码无需重新编译, 要是向一个接口添加一个新成员,会强迫接口的继承者更改其源代码并重新编译。
以上内容摘自 CLR Via(c#) 第三版
http;//www.itiask.com
1 IS-A 还是CAN-DO关系:类型只能继承一个实现,如果派生类不具有与基类的is-a(属于)关系,则应用接口,接口意味着can-do(能做)关系。如果多种对象都具有can-do功能,则应设计为接口。 由于值类型只能从System.ValueType类型派生,所以它们不能从一个任意的蕨类派生,这种情况下下要使用接口
2 易于使用,派生类能具有基类的所有功能,而要实现接口则必须实现接口的所有成员
3一致性的实现 不管一个接口文档规范有多好,都无法保证后续的开发能百分百实现它。如果为一个基类型提供一个良好的的默认实现,那么一开始使用时就是一个能正常工作并进行良好测试的类型,以后只要按需求修改便可。
4版本控制 向基类添加一个方法,派生类将继承该方法,用户的源代码无需重新编译, 要是向一个接口添加一个新成员,会强迫接口的继承者更改其源代码并重新编译。
以上内容摘自 CLR Via(c#) 第三版
http;//www.itiask.com
相关文章推荐
- CLR via C# 13.11 设计:基类还是接口
- 程序设计选择接口还是选择基类?那个更适合。
- 重构 — 改善既有的类图设计 条款15:区分基类和接口
- 微软对基类的使用手册, 觉得与现在流行的针对接口设计思想不是很合拍~~!!!
- 微软对基类的使用手册, 觉得与现在流行的针对接口设计思想不是很合拍~~!!!
- 从头认识java-7.6 适配设计模式究竟适配类?还是适配接口?
- 微软对基类的使用手册, 觉得与现在流行的针对接口设计思想不是很合拍~~!!!
- 设计:抽象类类还是接口
- 使用接口还是基类
- 接口的设计应该从小到大,还是从大到小?
- 设计模式六大原则(4):接口隔离原则
- VHDL语言的UART串行接口芯片设计程序清单
- myeclipse对象建模设计(对象建模(域模型)还是E-R建模(数据模型))
- RESTful接口API设计规范
- 设计模式六大原则----------接口隔离原则
- UI组件:暴露最小限度接口,在组件基类中实装共性属性
- 如何写出安全的API接口?接口参数加密签名设计思路
- App架构设计经验谈:服务端接口的设计
- 这样的用户体验,是设计错误,还是我孤陋寡闻,问问中行?
- 一个 C 接口设计的问题