机制方法熬之滴水穿石:Delphi曾经的利器(8)

每日一贴,今天的内容关键字为机制方法

    

                                                           12--delphi的接口

    

    

到现在我都认为接口编程比类继承更加的具有弹性和更适用于很多的应用中,很多人都认为多重继承是一个很高超的方法,其实多重继承的功能让整个类越来越臃肿起来,接口编程是一个讲究实际,比较亲近面向对象发展潮流的技术,巧妙的接口计划可以控制日渐宏大的框架,最明显的莫过于Spring框架了。当然接口编程概念,在Delphi时期一直就有了,在我用delphi4弄DCOM编程,在分布式的系统中运用非常普遍了,接口机制让代码维护起来非常便利。在面向对象运用方面,接口编程的方法可以让类继承的方法缺陷屏蔽掉,像类对象和类对象之间的交互,两者必须知道对方类型,因此形成了紧耦合的关系,这样形成一方类改变势必会影响另一方从而破坏了原来的任务代码。所以我们需要一种机制来定义通用的沟通方法。

    


    

接口就是一群服务方法的集合,在2000年的时候corba技术漫天飘动, 这是一个典范的proxy的技术也是一个接口机制运用最好的技术了。那时候我基本上还是以微软的COM组件做开发,这样的接口机制当然以COM对象之间合作和沟通的机制。该接口机制基本上由一个独一的接口,我们快捷键Crtl+shift+G就可以生成guid。这个接口都是从接口的最高层的类IUnknow接口继承上去的,该接口的方法有查询接口功能QueryInterface,以及管理接口的生命周期的addref和release方法,当一个接口加上一个独一的guid号后便可以作为com接口了。然而COM接口机制由于只提供了接口的声明和接口的继承,实际上并没有实现继承。所以当要实现特定的COM接口时,除了实现接口的方法以外,还须实现此接口所有父代接口声明的服务方法。COM接口机制由于也提供了控制COM对象的声明周期,因此该接口变得庞杂起来,所以我们要通过接口来控制COM的生命周期。所以只要具有COM对象的接口,COM对象便不会被释放掉,我们经常使用计数器来控制应用的次数,所以每次我们都需要增加接口引用的计数值,因此整个编码过程还是极为繁琐的。当年被吹嘘的Corba计数,还有我曾弄过的COM编程如今都退出了接口编程的舞台,那些编写COM的代码都已成了尘封的故事。
    每日一道理
生命,是一场漫长的棋局。这盘棋没有猎猎西风,没有四起狼烟,只有在取舍和进退中抉择。只有像棋中的小卒那样,勇往直前,毫不退缩沿着沟沟坎坎的人生之路,艰难而执着的求索,前进,才会谱写人生最壮丽的强者之歌。

    


    

Delphi的接口除了支撑COM外,在Delphi6支撑web service开发是加入了一个接口叫做RTTI。这个RTTI叫作:Run Time type Information.该接口是由delphi6的编译器M+/M-指令支撑的,在源码中我们看到只要在接口引用了该编译,该接口便主动有了RTTI信息。其实RTTI信息是有TIntfMetaDData的结构体定义的,该接口保存的信息有接口名称,接口声明的单元,存储接口方法信息动态数组,接口信息指针等,我们应用这接口就可以存取接口信息可用于更为庞杂的编码过程中。

    

                                                                                   (未完待续..........)

文章结束给大家分享下程序员的一些笑话语录: 有一天,一个男人穿越森林的时候,听到一个细微的声音叫住他。他低头一看,是一只青蛙。
“如果你亲我一下,我会变成一个美丽的公主哦。”男人一言不发,把青蛙捡起来,放入口袋。
“如果你亲我一下,我会变成一个美丽的公主哦。而且,我会告诉我遇到的每一个人,你是多么聪明和勇敢,你是我的英雄。”男人把青蛙拿出来,对着它微微一笑,又把它放回口袋。
“如果你亲我一下,我会变成一个美丽的公主,然后我愿意成为你的爱人一星期。”男人又把青蛙拿出来,对着它微微一笑,把它放回口袋。
“如果你亲我一下,我会变成一个美丽的公主,然后我愿意成为你的爱人一年,而且你可以对我做任何事。”再一次,男人把青蛙拿出来,对着它微微一笑,又把它放回口袋。
  最后,青蛙无力地问:“我开出了这么好的条件,为什么你还不肯吻我?”男人说:“我是一个程序员,我可没时间和什么公主鬼混。不过,拥有一个会说话的青蛙,倒是蛮酷的。”

--------------------------------- 原创文章 By
机制和方法
---------------------------------

posted @ 2013-05-25 14:53  xinyuyuanm  阅读(159)  评论(0编辑  收藏  举报