Beginning C# Object中文版主要介绍了C#语言的知识以及使用C#进行开发的原则与实践,结合C#深入浅出的阐述面向对象理论的基本内容。然而本书不止达到此目的,在我看来它超越了对单一语言的讨论。
编程(Programming)的本质是方法学,即思维过程。将人类对现实世界(Real World)的认识抽象成模型(Model),再将模型转换为特定计算机代码(Code),交给计算机执行。可以归纳为下图:
显然面向对象(Object Oriented,OO)编程是面向对象方法学,它仍旧遵循以上所描述的步骤。建模的时候,一系列符号(Symbol)成为构成模型的要素。在面向对象中,这些符号就是对象。而C#作为一门面向对象语言,在使用它进行编程的时候,理所当然要遵循面向对象方法学。
很多时候,尤其是初学者,还没能理会从现实世界抽象到模型这一步骤,就大张旗鼓的说××语言很简单云云。比如在Beginning C# Object中文版一书的译序中提到“面向对象编程已经流行多年,然而还是有无数的入门者在入门阶段就走错路子,抱着错误的观念、用错误的方式开发着意大利面般一团乱麻的程序”。究其原委就是开发者仅凭空想,就把现实世界转换成计算机代码。如下图:
此等危害在于,拿目前只停留在本体论上的认识妄图构架一个赛柏空间(Cyber Space)。这就好比刚刚学会了泥瓦匠的功夫,就准备砌起金茂大厦。这样比无作为更可怕。放眼望去,有多少岌岌可危的应用程序正在运行着!
侯捷说:“莫在浮沙筑高台”。在学习一门编程语言,比如C#的时候,我们也要切记这句话。那么如何能掌握面向对象方法学,并使用C#这门语言写出面向对象的程序,而不至于浮在表面呢?Beginning C# Object中文版一书给出了答案。本书在介绍C#这门语言的时候,紧紧围绕着面向对象方法学:第一部分阐述面向对象概念;第二部分进行对象建模;第三部分将模型转换为C#应用程序。当然书中的对象建模技术不止用于C#,这样一种超越单一语言的论述,也是本人对该书的感慨。