感谢您阅读本书!
本书是写给程序员的,更确切说,是写给Delphi程序员的,再确切些,是写给已经有了一定的实现能力而欲求寻找一种“突破”的Delphi程序员的。
作者本人,在接触了两年的Delphi之后,曾经迷茫过。我可以写各种各样的程序,我懂得VCL大多数组件的用法,我知道应该调用哪个Windows API来完成我要的功能……但时常会疑惑:这就是写程序了?那时候在大学里读书,课余时间很多,每天就不停地写,写各种程序:包括课堂的作业、在网上发布的免费软件以及接到的开发项目。每天都写代码,有了Delphi的help和MSDN,似乎不会有什么困难,只是偶尔会觉得单调。不禁又问自己:这就是写程序了?
我迷茫,是因为我感到,写程序不应该是件单调的事情;我迷茫,是因为自己总在寻求却始终没有找到一种“突破”的感觉;我迷茫,是因为我想成为“高手”却不知道如何去做……
我有很多理由喜欢Delphi,但是应该说,那时正是Delphi的RAD开发方式让我陷入迷茫。当时我迷惑于RAD使人能力退化还是一种革命性的进步,相信很多Delphi程序员都会和我有一样的经历。
我很幸运,就在我迷茫的时候,认识了我的同学Lythm,受其影响,我开始涉猎面向对象编程类的书籍。从《Thinking in C++》到《C++面向对象高效编程》、从《Inside C++ Object Modal》到《设计模式》……然而,我一直在寻找却始终没有找到一本完整的以Delphi/Object Pascal来讲述面向对象编程方法学的书,其间只有一本Charlie Calvert的《Delphi 4 Unleashed》赢得了我的欢心,其中关于多态的描述非常的精彩,只可惜相关篇幅太少。
即便如此,我仍然感到找到了方向,于是就暂时放下手中的键盘,钻研起理论。这段时期已经不会再感到迷茫,取而代之的是一种自身能感受到的“突破”的感觉。工作后,更得以有机会将自己所学习的东西应用于实际开发之中,并不断修正自己头脑中的理论体系。
你是否曾经或正在经历我曾经的迷茫呢?
如果是,那么我想这本书应该是你所正在寻找的,因为我所要写的,就是一本我自己梦寐以求在寻找的书。一本以Delphi/Object Pascal来讲述面向对象编程方法学、代码设计方法的书。
我希望您和我一样幸运,不!您比我更幸运,因为您比我多了这本书。
本书的书名是《Delphi高手突破》,我并没有任何文字暗示自己已经成为“高手”,所谓“高手突破”的解释并不是高手来帮助你突破。写这样一本书,我只是希望能把自己的“突破”的感觉与经验和大家共享,同时,它也是我对前一段时间学习的一个总结。
我很喜欢这本书的英文名称,是我自己起的,我愿意将它叫作《Design in Delphi》,不过请原谅我无法用中文准确地、优美地将它表述出来。
这是本特殊的Delphi编程方面的书,它不会教你如何使用Delphi,也不会教你如何使用类似TListBox那样的组件,更不会涉及诸如多线程、DLL、API等Windows编程的内容,也没有热门的COM/DCOM、Web Service。
这本书会告诉你面向对象编程的基础理论,会给你剖析VCL的部分源码,会告诉你在你开始敲键盘写代码之前应该做什么,怎样使你的代码的构架被更良好的设计以致于更容易被维护和修改。
看起来,这是一本更侧重于讲设计的书。请不要误会,这本书还不会教你关于面向对象分析/设计(OOA/OOD)的内容,更没有UML。
就本质来说,这本书只讲OOP,当然,是用Delphi作为载体,因为它是写给Delphi程序员的。其中有设计的内容,但仅限于代码设计。本书末尾会有一章就一个实例向你展示代码构架设计的一种可能的方式,但此方式并不是唯一的。实例不需要被照搬,而需要领会。
本书第1、2、3章介绍OOP的知识基础,基本上所有的编程语言的书都会有这样的内容,但本书一定会带给你不同的感觉。
第4、5章介绍VCL相关的知识。其中第4章为你剖析部分VCL的核心组件源码,第5章介绍定制、设计组件的方法。
第6、7章介绍程序构架设计。第6章介绍一般性的代码设计准则,其内容可以完全脱离Delphi,因为这些准则是跨语言的。第7章为一个完整的代码设计实例,以编写一个多工作区的文本编辑器为例,从实践角度说明程序构架设计的方法。
本书的支持网页为:http://nicrosoft.net/book/did/
作者Email:[email protected]
希望你喜欢本书以及它的作者——我!谢谢。
在此,我要感谢为这本书的诞生给予过我帮助的人们。
首先,我要感谢我的女友Esan,在我的写作过程中,她一直陪伴在我身边,不断地给我鼓励和支持,使我得以最终完成写作。
其次,我要感谢我的同事兼拍档唐沐,是他为本书的每一章创作并提供了精美而有趣而又富有创意的插图,使得本书更富有一些活泼的气氛。
再次,我要感谢CSDN以及大富翁论坛的热心网友们,当我在网络上发表了本书的一些预览节选后,他们给予我许多宝贵的意见和建议。
最后,我要感谢清华大学出版社的朱英彪编辑,他的宽容和给予我的帮助使得我们的合作非常愉快,也使得本书能够顺利完成及出版。
申 旻
2002年7月于珠海