插件式框架作为一个高聚合低耦合的系统,它的功能定义与功能实现之间是分离的,这种策略是高聚合实现的保证。插件式框架好像一个功能聚集站,它对外界宣布,只要符合它发布的某种规范的组件(实现接口的类通常称为组件)都可以加入到这个平台中,而这些组件到底是做什么事情的,框架并不关心,当然,框架也提供了一些必要的信息和帮助保证这些组件能够正常实现它们的功能。
桥接模式是一种被认可的表示定义和与之关联的实现的方式,它和工厂(Factory)模式为所有的应用提供了基础。使用桥接模式开发的组件具有为了一个共同目标而多方协同工作除某些必须实现的接口外无需彼此交互的优点。
在具有多个逻辑层的程序设计中,各层之间的通讯大多通过接口实现,由于接口不会轻易改变,如果一个层的代码发生变化,它不会影响其它层的功能;只要实现接口的组件功能正确,那么这个程序运行就更无问题。这种做法使得各层之间的影响降低到最低程度。
接口是是类型一般行为的定义和契约。例如交通工具都包含启动、停车、加速和减速等方法,但作为交通工具的具体类型,不同车辆之间的操作是不一样的。接口并不考虑它们各自采用什么方式实现这些功能,但是,它们都必须有这些基本的功能。接口只负责定义而不考虑实现,我们也不能产生一个接口的实例对象(Instance)。
实现了接口的类或结构都必须实现接口中定义的每一个方法,这些方法在设计上往往是相关的。
接口与抽象类非常相似,例如两者都不能产生实例对象,都可以作为一种契约和定义使用。但接口和抽象类仍有本质的不同,这些不同包括:
-
抽象类可以包含某些实现代码,但接口没有任何实现部分;
-
抽象类可以包含字段而接口没有;
- 接口可以被结构(Struct)继承,但抽象类不行;
- 抽象类可以有构造函数和析构函数,而接口都没有;
- 抽象类可以继承自其它类和接口而接口仅仅能继承自接口;
- 接口支持多继承而抽象类仅仅支持单根继承。
下面是抽象类和接口的对比例子:
#001 public abstract class AClass {
#002 abstract public void MethodA (int a);
#003 abstract public void MethodB (int a);
#004 abstract public void MethodC (int a);
#005 abstract public void MethodD (int a);
#006 }
#001 public interface IInterface {
#002 void MethodA (int a);
#003 void MethodB (int a);
#004 void MethodC (int a);
#005 void MethodD (int a);
#006 }
即使不从桥接模式的观点考虑,多种面向对象语言都引入了接口这种类型定义还有一个重要原因:一个类可以实现多个接口。在大部分面向对象语言中,多重继承都是被禁止的,这是因为当编译器需要找到虚方法的正确实现时,会出现不确定性。但是接口并没有实现的部分,实现多个接口,并非意味着类(Class)那样的继承,它也绝非是多重继承机制的替代品。
我们常常将接口与抽象类混淆,事实上,两者的表象过于一致。但接口用来定义两个对象通信的契约,抽象类用来封装对象间公用的行为;抽象类应主要用于关系密切的对象,而接口最适合为不相关的类提供通用功能。二者设计起初的目标完全不同,但在实际应用中被太多的人误解。这个原理在ArcObjects库中显露无遗:不同类型的组件互相调用是通过接口,而同一类型的对象群,如Color,则是通过抽象类组织在一起的,即接口是对外通讯的,抽象类是对内组织的。
分享到:
相关推荐
"c#接口的意义 学习心得 读书笔记" c#接口的意义是学习c#语言的重要部分,对于初学者来说,理解接口的概念和应用是非常重要的。本文将详细介绍c#接口的定义、特点、优点和实践经验,帮助读者更好地理解和使用接口。...
keil是一款嵌入式领域非常流行的编译软件,但却无法在没有硬件支持的情况下进行软件的模拟仿真,于是Keil提供了AGSI接口,支持在没有硬件的情况下也可以进行软件的模拟仿真。而仿真后的代码可直接在响应的硬件平台上...
本规范详尽地定义了这些接口的交互过程和消息格式,对于理解中国联通IMS网络的运行机制,以及设备开发和网络部署具有重要指导意义。通过遵循这一规范,可以确保不同厂商的设备间能无缝集成,为用户提供高质量、稳定...
**通信接口SFI SPI接口标准** SPI(Serial Packet Interface)是一种高速、同步串行接口,主要应用于通信设备之间,提供数据传输服务。...理解并遵循这些标准,对于开发高效、可靠的通信设备具有重要意义。
- **目的与意义**:通过接口方案的实施,实现两系统的数据无缝对接,提高数据同步效率,降低开发成本,同时增强系统的灵活性和扩展性。 #### 二、接口工作过程 - **启用/开发接口端口**:首先需要在NC系统和设备...
- 解释接口响应中包含的所有字段的意义,包括: - **status**: 返回结果的状态码,0表示正常,1表示错误。 - **company**: 所属公司的名称,类型为字符串。 - **category**: 所属的分类,类型为字符串。 - **...
它提供了一种系统的方法来创建和使用接口,这不仅能够帮助程序员构建更加稳定和可维护的软件,也能够促进代码的重用,这对于提高软件开发的效率和质量都有着重要的意义。 由于本书的权威性和实用价值,它被认为是一...
浅谈 Java 的接口的作用和意义 Java 的接口是一系列方法和特征的集合,它可以对应 Java 中特定的语法结构。接口和抽象类不同,抽象类可以实现某些方法,而接口则不能。接口的概念较为抽象,可以理解为是一系列方法...
这些知识在现代计算机系统和嵌入式系统中具有广泛的应用,对于理解和开发硬件设备及其与软件的交互具有重要意义。通过理论与实践的结合,我们能够更好地应对未来在接口设计和通讯技术方面可能遇到的问题。
【标题】:Web服务接口调试工具的使用与详解 ...掌握这类工具的使用技巧,对于提升开发效率和软件质量具有重要意义。在实际工作中,应充分利用这些工具,确保每个接口都能正常工作,为整个系统构建坚实的基石。
API接口模板的意义在于提供了一种统一的标准,使得开发人员能够快速理解和使用API,同时也有助于提升系统的可维护性和互操作性。使用API接口模板可以降低开发成本,提高团队协作效率,使得接口设计更加规范和易用。...
浅谈 Java 的接口的作用和意义 Java 接口是一种抽象的概念,定义了一系列方法和特征的集合。它可以对应 Java 中特定的语法结构,与抽象类不同的是,抽象类可以实现某些方法,而接口不能。 Java 接口的存在意义在于...
在当前的商业环境中,发票管理是企业财务管理的关键环节,而金税接口的升级对于企业来说具有重大意义。金税接口3.0版本可能包含了以下关键知识点: 1. **发票导入与导出**:新接口提供了高效的数据导入和导出机制,...
同时,这些接口的功能实现也是IPTV系统开发中不可或缺的一部分,对于系统整体架构和性能优化具有重要意义。开发者在进行IPTV EPG接口开发时,需要充分理解每个接口的功能需求,并且严格按照开发规范进行接口设计和...
这些内容对于理解和应用计算机硬件与软件的交互具有重要意义,也是计算机工程师必备的基础知识。通过深入学习和实践,不仅可以提升技术能力,也为未来从事硬件驱动开发、嵌入式系统设计等领域打下坚实基础。
2M接口提供了一个高速的数据传输通道,对于语音、数据和视频传输具有重要意义。 2M接口的基础知识点主要涵盖以下几个方面: 1. **接口规格**:2M接口的传输速率为2.048 Mbps,这源于其基于PCM(脉冲编码调制)技术...
5. **错误处理与日志记录**:当接口操作失败时,需要向调用者返回有意义的错误信息,并记录日志,便于后期排查问题。 6. **安全性**:接口的安全性至关重要,需要防止SQL注入、跨站脚本攻击(XSS)等常见Web安全问题...
**LPT接口打印技术详解** LPT接口,全称为"Line Printer Parallel Interface",中文名为行式打印机并行...了解并掌握LPT接口的工作原理和技术,对于维护和修复老旧设备,以及理解计算机硬件发展历史都具有重要意义。
在IT行业中,C#语言广泛应用于开发Web应用程序,其中ASHX(Generic Handler)是一种轻量级的HTTP处理程序,常用于实现简单的Web服务接口。本文将深入探讨如何使用...这对于构建分布式系统和API接口具有重要的实践意义。
数据库DLL接口方式是一种在软件开发中使用动态链接库(DLL)来实现数据库访问的方法。DLL是一种可执行代码的模块,可以被多个程序共享,减少了内存...了解和掌握这种技术,对于提升开发效率和软件质量具有重要意义。