在.net 应用程序设计中如何选择class, abstract class ...

来源:互联网 发布:mysql 给用户root权限 编辑:程序博客网 时间:2024/06/05 05:42

本文面向的读者:.net 应用程序设计师和程序员

关键字:

type� 类型

class - 类

abstract - 抽象的

interface - 接口

member - 成员

method - 方法

property - 属性

预备知识:在阅读本文时,您应当了解.net编程的基本知识并且已经掌握class, abstract class 和 interface全部知识。这里我仅简单介绍一下他们的基本知识。本文的例子由c#编写。期望您对c#编程有一定的了解。

正文:

我们无法创建一个abstract class或interface的实例(instance)。让我们从abstract class和interface的定义来看他们的不同。abstract class可以包含abstract methods 和 abstract properties, 也可以包含其他的members,象正常的class一样。而interface只能包含abstract methods和properties(属性)。interface中的所有methods和properties不需要加abstract和public关键字,因为这两个关键字在interface中是默认的。举例如下:

class则可以提供更好的灵活性。你可以给class添加任何members,只要添加的不是abstract method即可(也就是说你要提供一个有具体实现的方法)。这样就不会影响从该class继承的类,已有代码无需做任何改变。

设计原则

•优先考虑使用class或abstract class而不是interface。

•使用abstract class代替interface来降低class继承层次之间的耦合关系。

•使用interface,如果你需要给一个值类型实现(value type, 象struct就是值类型)多态继承(polymorphic hierarchy)。(值类型除了从interface继承以外,不能从其他type继承)。

•在需要多重继承的情况下,可以考虑使用interface。

参考目录:microsoft .net development series, framework design guidelines

(责任编辑:徐培炎)


原创粉丝点击