c语言接口与实现:C#的接口慨述



节接口慨述

  接口(erface)用来定义协定实现接口类或者结构要和接口定义严格有了这个协定就可以抛开编程语言限制(理论上)接口可以从多个基接口继承而类或结构可以实现多个接口接口可以包含思路方法、属性、事件和索引器接口本身不提供它所定义成员实现接口只指定实现该接口类或接口必须提供成员

  接口好比种模版这种模版定义了对象必须实现思路方法其目就是让这些思路方法可以作为接口例子被引用接口不能被例子化类可以实现多个接口并且通过这些实现接口被索引接口变量只能索引实现该接口例子例子:

erfaceIMyExample{
 this[index]{get;;}
 eventEventHandlerEven;
 voidFind(value);
 Po{get;;}
}
publicdelegatevoidEventHandler(objectsender,Evente);

  上面例子中接口包含个索引this、个事件Even、个思路方法Find和个属性Po

  接口可以支持多重继承就像在下例中接口"IComboBox"同时从"ITextBox"和"IListBox"继承

erfaceIControl{
voidPa;
}
erfaceITextBox:IControl{
voidSetText(text);
}
erfaceIListBox:IControl{
voidSetItems(items);
}
erfaceIComboBox:ITextBox,IListBox{}

  类和结构可以多重例子化接口就像在下例中类"EditBox"继承了类"Control"同时从"IDataBound"和"IControl"继承

erfaceIDataBound{
 voidBind(Binderb);
}
publicEditBox:Control,IControl,IDataBound{
 publicvoidPa;
 publicvoidBind(Binderb){...}
}

  在上面代码中"Pa"思路方法从"IControl"接口而来;"Bind"思路方法从"IDataBound"接口而来都以"public"身份在"EditBox"类中实现

  介绍说明:

  1、C#中接口是独立于类来定义这和C模型是对立在C中接口实际上就是抽象基类

  2、接口和类都可以继承多个接口

  3、而类可以继承个基类接口根本不能继承类这种模型避免了C多继承问题C中区别基类中实现可能出现冲突因此也不再需要诸如虚拟继承和显式作用域这类复杂机制C#简化接口模型有助于加快应用开发

  4、个接口定义个只有抽象成员引用类型C#中个接口实际所做仅仅只存在着思路方法标志但根本就没有执行代码这就暗示了不能例子化个接口只能例子化个派生自该接口对象

  5、接口可以定义思路方法、属性和索引所以对比个类接口特殊性是:当定义个类时可以派生自多重接口而你只能可以从仅有个类派生
接口和组件

  接口描述了组件对外提供服务在组件和组件的间、组件和客户的间都通过接口进行交互因此组件旦发布它只能通过预先定义接口来提供合理服务这种接口定义的间稳定性使客户应用开发者能够构造出坚固应用个组件可以实现多个组件接口个特定组件接口也可以被多个组件来实现

  组件接口必须是能够自我描述这意味着组件接口应该不依赖于具体实现将实现和接口分离彻底消除了接口使用者和接口实现者的间耦合关系增强了信息封装程度同时这也要求组件接口必须使用种和组件实现无关语言目前组件接口描述标准是IDL语言

  由于接口是组件的间协议因此组件接口旦被发布组件生产者就应该尽可能地保持接口不变任何对接口语法或语义上改变都有可能造成现有组件和客户的间联系遭到破坏

  每个组件都是自主有其独特功能只能通过接口和外界通信个组件需要提供新服务时可以通过增加新接口来实现不会影响原接口已存在客户而新客户可以重新选择新接口来获得服务

  组件化设计

  组件化设计思路方法继承并发展了面向对象设计思路方法它把对象技术应用于系统设计对面向对象设计实现过程作了进抽象我们可以把组件化设计思路方法用作构造系统体系结构层次思路方法并且可以使用面向对象思路方法很方便地实现组件



  组件化设计强调真正软件Software可重用性和高度互操作性它侧重于组件产生和装配这两方面起构成了组件化设计核心组件产生过程不仅仅是应用系统需求组件市场本身也推动了组件发展促进了软件Software厂商交流和合作组件装配使得软件Software产品可以采用类似于搭积木思路方法快速地建立起来不仅可以缩短软件Software产品开发周期同时也提高了系统稳定性和可靠性

  组件设计思路方法有以下几个方面特点:

  1、编程语言和开发环境独立性;

  2、组件位置透明性;

  3、组件进程透明性;

  4、可扩充性;

  5、可重用性;

  6、具有强有力基础设施;

  7、系统公共服务;

  C#语言由于其许多优点十分适用于组件编程但这并不是说C#是门组件编程语言也不是说C#提供了组件编程工具我们已经多次指出组件应该具有和编程语言无关特性请读者记住这点:组件模型是种规范标准不管采用何种语言设计组件都必须遵守这规范标准比如组装计算机例子只要各个厂商为我们提供配件规格、接口符合统标准这些配件组合起来就能协同工作组件编程也是我们只是说利用C#语言进行组件编程将会给我们带来更大方便

  知道了什么是接口接下来就是怎样定义接口,请看下节--定义接口
Tags:  c接口函数 c语言接口 c接口 c语言接口与实现

延伸阅读

最新评论

发表评论