什么是接口-京东应用架构设计

时间:2021-06-10 11:10:38
【文件属性】:
文件名称:什么是接口-京东应用架构设计
文件大小:7.56MB
文件格式:PDF
更新时间:2021-06-10 11:10:38
Delphi 2010 语法 7.1 什么是接口 接口是一种结构类型,它声明了一组方法和属性,但并未替这些方法和属性实现具体 的定义。 从所起作用来看,接口相当于计算机世界中的契约。现实世界中的契约规定了签订双 方各自必须履行的义务,而接口则规定了所有实现这个接口的对象必须履行的义务,这种 义务并不是用文字列出的若干条款,而是用程序语言声明的一组方法或属性,任何实现这 个接口的对象必须替接口中的所有方法属性进行具体定义(即实现这个接口),就像任何 一个履行合约的人都必须完成合同上所列出的所有条款(履行这份契约)一样。 我们将上面的比喻整理一下: 计算机世界 现实世界 接口 契约 当中声明了若干方法或属性 当中列举了若干条款 接口的使用者必须实现接口 契约的签订者必须履行契约 替接口中的方法或属性进行具体定义,即实 现接口 完成契约中的每项条款,即履行契约 这样进行类比后,很容易发现接口与契约非常的相似。 那么,接口到底有什么用?总不会只是让对象去实现它所声明的方法或属性吧?当然 不是。我们通过下面的例子来感受一下接口的作用。 假设我们现在要为 Word开发一款小插件。这款的插件的功能非常简单:它在工具栏上 添加一个按钮,当我们点击这个按钮时 Word会自动保存当前正在编辑的文档。 要编写这款插件,我们首先需要在工具栏上添加按钮。问题是只有微软自己才知道调 用哪个函数才能在工具栏上添加按钮该,所以问题变成了我们如何才能知道这个函数。很 明显,我们不可能打电话去问微软公司。由于 Word的源代码并不公开,所以也不可能在网 上搜索。 很有可能,微软当初也想过这个问题。证据就是他们找到了解决之道:将这类的函数 全部声明在一个接口中,并将接口暴露给开发者。如此一为,我们就可以调用相应接口的 方法来实现这个功能。 有人可能会奇怪:接口不是没有提供方法的具体实现吗?这样调用方法还有什么用? 我的回答是:接口确实没有提供实现,但微软公司提供给开发者的并不是只有一个接 口,还有一堆编译好的 DLL,而 DLL中是可以储存代码的。当我们调用接口中的方法时, Word会通过某种方法寻找到 DLL中的代码并执行。 至于为什么不能直接从 DLL中调用函数,而非要经过接口来调用,恐怕要等读者学习 了 COM编程后才会明白。 总而言之,通过接口提供只是众多解决方法的其中之一而不是唯一。就算这样,相信 通过这个例子读者应该还是能感受到接口的作用的。我们再将这个例子用契约来描述一 下: 我们把开发插件当成是开发者与微软公司之间的一种免费交易,为保证交易的顺利进 行,二者签订了一份契约(接口),开发者通过契约要求微软公司实现契约中列举的所有

网友评论