实现接口的类型(类接口的实现及应用)

大雄 481 2022-06-16


大家好,这讲开始我将给大家讲解这套《VBA中类的解读及应用》的最后一个专题:类接口的实现及应用。在之前的文章中已经给大家了解了一些接口的相关知识,在这个专题中将会给大家详细地讲解这块的内容,作为本套教程的收篇部分。

什么是接口(Interfaces),接口的意义,接口的命名习惯

我们知道,VBA最初是一种简单的脚本语言(scripting language),它允许您创建简单的宏(macros)来自动化运行频繁执行的工作,同时可以编写可以调用的自定义函数(functions)。在1997年的版本中,Microsoft升级了VBA,包括一些面向对象的编程特性,并添加了VBA编辑器(the VBA Editor)。从这个时候开始,VBA在众多的场合开始发挥着独步的作用,有寄生语言的方便,也有进一步开发的难题。可以肯定的是,VBA并不是一个完全的面向对象编程语言(object-oriented programming lanauge),因为它缺乏重要的OOP特性,比如继承性(inheritence)和函数重载(function overloading)。然而,它确实包含了两个非常重要的OOP特性:类(Classes)和接口(Interfaces)。

对于类(Class)的概念,我们已经有过详细的讲解,那么,什么是接口(Interface)呢?接口中定义类的所有属性(properties)、函数(functions)和子过程(subs),但不包含可执行代码。你可以在类中定义包括所有的过程声明以及它们的输入参数(input parameters)(如果有的话)和函数的返回类型(the return type for functions),但是这些过程中不存在任何代码。也就是说,接口定义了类向外部世界公开什么,但不包含或定义如何执行这些过程。

为了使用接口,需要你非常熟悉VBA中的类和对象(object),以及如何使用它们。正如可以将类看作对象的模板(template)一样,可以将接口(Interface)看作类(Class)的模板。一个接口在一个类模块(class module)中创建,一个类模块是一个接口。您不需要对类模块做任何特殊的操作来表明它将被用作为接口。

按照习惯惯例,用于定义intefaces的类模块的名称以大写的“I”开头。但这种写法并不是必需的,只是作为一个代码人员的习惯。在我的这个专题中,将在引用用作接口的类模块时使用术语“接口模块”(interface module),在引用常规类模块时使用术语“类模块”(class module)。这只是为了说明。实际上,用作接口的类与常规类之间没有区别,只是接口类中定义的过程不包含任何可执行代码。接口模块只包含过程声明(the procedure declarations),没有代码。

我们来看看本专题将要讲解的一个实例的类接口截图:

这讲的文字较少,但给大家讲解的知识非常多,希望读者能认真的理解,可以说类的知识本身就是VBA的一个难点,而接口的理解也是类知识中的难点。在上文的介绍中,我尽可能的用准确的语言描述这些概念,但怕引起异议,我还是附上了英语的概念,供大家研读。

今日内容回向

1 什么是接口?如何理解接口是产生类的模板?

2 接口模块和类模块有什么不同?

3 接口类的命名有哪些可以借鉴的习惯?

在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山。

学习VBA是个过程,这个过程是自己忍受孤独的过程。

“水善利万物而不争”,你看她绵绵密密,微处则无声,巨则汹涌。学习亦如此,把握现在,为达千里,需要默默耕耘,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里,待到暮年时去自欺欺人。要在当下,用一颗充满生机的心灵,努力提高自己,这才是进取。越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。一杯茶,满也好,少也好,不要去计较;浓也好,淡也好,其中都有值得品的味道。去感悟真实的时间,静下心,多学习,积累福报。而不是天天混日子,也不是天天熬日子。一切众生的心都在变化,像时间一样,永远不会停留,把握现在就是福报。

VBA是利用Office实现自己小型办公自动化的有效手段,我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了五部VBA专门教程,回向给需要学习的朋友:

第一VBA代码解决方案是VBA中各个知识点的讲解,覆盖绝大多数的VBA知识点,初学必备;

第二VBA数据库解决方案数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作。

第三VBA数组与字典解决方案数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习。

第四VBA代码解决方案之视频是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。

第五VBA中类的解读和利用是一部高级教程,讲解类的虚无与肉身的度化,可以对促进自己理论的提高。

学习的过程也是修心的过程,修一个平静的心。在代码的世界中,心平静了,心情好了,身体自然而然就好。心静则正,内心里没有那么多邪知邪见,也就没有那么多妄想。在平静中积累自己的财富。



版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《Java程序员修炼之道》作者Ben Evans:保守的设计思想是Java的最大优势
下一篇:Java中常用缓存Cache机制的实现(高速缓存Cache是为了解决( ))
相关文章

 发表评论

暂时没有评论,来抢沙发吧~