方法代码熬之滴水穿石:Delphi曾经的利器(3)

上班之余抽点时间出来写写博文,希望对新接触的朋友有帮助。今天在这里和大家一起学习一下方法代码

                                  7--VCL的架构之美

    看VCL代码的时候,还是看到了写过程代码不曾感受到的面向对象设计所涉及到的内容。这里面三项内容是:继承、封装和多态。这三项也是面向对象所涉及到的核心技术了,一个完美的架构会将这三块内容用到了极致。Delphi的VCL正是如此。

 

    我们在java编码时及C++编码时,常常用到了抽象方法来定义类,一般都会用派生类的方法来覆盖父类。只是这样的写法,似乎在VCL里看到的并不多。感觉DELPHI里一般喜欢用接口方法替代了抽象方法。现实上,我认为接口方法更加让我懂得抽象的方法,也比拟符合面向对象的开辟趋势。在java的世界里,放眼从前尽是接口方法。现实上在DELPHI的底层代码中,很喜欢在父类定义虚拟的方法(virtual),然后再用派生类的方法去覆盖。这类方法看上去很像抽象方法的过程,然而该方法还是现实生成并且是段空代码。这样的方法现实上便于对于父类方法的完善,而且还会让子类方法进行调用父类的方法,当然这个过程都是由程序员自己决定的。

 

    事实上,很多派生类的方法都可以采用一个叫inherited的方法,先实现父类的方法,然后在实现自身的方法。delphi许多控件都是采用类似的方法,这样的方法我们平日可以看到inherited Create(AOwner)写法当然就是还有一种风趣的写法,那就是先实现自己(派生类)的方法,然后再调用父类的方法,当然这个时候还可以在这个调用父类代码下再写些代码。这类方法的涌现,确切让程序员有了更多的选择的权利。全部代码在面向对象的基础上层层分离,但又可以根据inerited前后联系起来,可以解决许多场景须要处置的问题。

    每日一道理
共和国迎来了她五十诞辰。五十年像一条长河,有急流也有缓流;五十年像一幅长卷,有冷色也有暖色;五十年像一首乐曲,有低音也有高音;五十年像一部史诗,有痛苦也有欢乐。长河永远奔流,画卷刚刚展开,乐曲渐趋高潮,史诗还在续写。我们的共和国正迈着坚定的步伐,跨入新时代。

 

    当然我们也可以让派生类完全的覆盖父类的方法,在调用时只让派生类的代码执行而不须要理会父类方法的内容。DELPHI程序员用的多的类估计就是由Component类派生出来的各类控件了。该componet类下基本分为可视化组件和非可视化组件两类。除此之外,VCL的代码中许多都融入了设计模式的方法,设计模式我基本上是在学JAVA时才渐渐熟悉起来的,07年当我浏览VCL底层代码时,发现这类被推重的模式包括JAVA中几个常用的框架,这些都是DELPHI的VCL基本都涵盖的内容,看来任何事情都是一脉相承而已,只是各自加个观点玩个理论套个外壳就成了一个新的框架,现实上都是一个模子衍生出来的东东。

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

文章结束给大家分享下程序员的一些笑话语录: 手机终究会变成PC,所以ip会比wm更加畅销,但是有一天手机强大到一定程度了就会发现只有wm的支持才能完美享受。就好比树和草,草长得再高也是草,时间到了条件成熟了树就会窜天高了。www.ishuo.cn

你可能感兴趣的:(Delphi)