对于接口, 只是依照MSDN IMPLEMENT过, 但是还没有自己设计过接口, 只知道接口仅提供空的方法, 留给实现类去实现, 可是什么时候会用到接口, 到底起什么作用还不十分清楚, 请有经验的朋友指点一下
---------------------------------------------------------------
面向对象的多态,就是说同一件事情有不同的做法,接口只是规定能做什么事情,具体你怎么做就看你的实现了。
过滤Windows的消息,我们就是现那个IMessageFilter接口,它的一个sub就是PerMessagefilter,在这个sub中你增么处理就是你的事情,如果你么实现这个接口,必须提供实现方法,哪怕是空的。
参考这个帮助:
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconintroducingclassinterface.htm
---------------------------------------------------------------
意义总是有的:)
不知道你有没有做过多层结构的程序?举个简单的例子,假设你做的系统有客户端和中间层,而你的客户端在调用中间层的业务处理方法的时候不是通过接口实现的而是直接通过调用类方法实现的,那么恭喜你,以后你有得累了。
不妨做个假设,假如你的中间层业务处理方法的代码或者方法名要做修改,那么你的客户端程序就必须全部更新。而如果是通过接口实现来实现的话,无论你中间层的代码怎么修改,只要接口不变,客户端程序就不必修改。
---------------------------------------------------------------
接口类似于类,但它的成员都没有执行方式,它只是方法、属性、事件和索引符的组合而已,甚至不能实例化一个接口,接口只包含成员的签名,接口也只能包含这四种成员,它没有构造函数,也没有字段,接口不允许进行运算符重载。
那么为什么要使用接口呢?主要原因是它们是一种有效的契约,类有一些成员,不必考虑把成员组合在一起的问题,类只包含一个拥有各种方法、字段和属性等的列表,但为了能以某种方式使用类,必须知道类能执行哪些功能,具体操作是声明执行一个或多个接口的类,类执行接口的方式是从这个接口派生,再提供在这个接口中定义的所有成员的执行方式。
有接口的另一个原因是与COM的互操作性。在。NET出现前,COM及其后续版本DCOM和COM+是应用程序在WINDOWS平台上相互通信的主要方式,COM使用的特殊的对象模型很大程度上依赖于接口,实际上,接口的概念是借COM的东风流行起来的。但要强调的是,C#接口与COM接口不同,COM接口有非常严格的要求,例如它们必须使用GUID作为标识符,而这在C#中不是必要的,但是,使用属性,可以把C#接口看作是COM接口,因此,可以与COM兼容。