Preview
不久前,我在CSDN的blog上写了几篇关于面向对象理论的小文章。
http://blog.csdn.net/Slugfest/category/359453.aspx
但是现在,我觉得还有更多的东西可以讲,就是已经写出来的东西,也还有必要再修改修改,目的就是把我对面向对象理论的认识比较系统地表达出来。也希望可以给一些开发者以启示作用。
这章的小标题,我所以称其为Preview,是因为我现在手头的工作和Preview Image相关。
什么是面向对象?
面向对象是一种程序设计的范式。面向对象使用对象,类,封装,继承,多态,消息等概念来进行程序设计。
大约是2003年,在读研究生课程的时候,有一门课程就叫做《面向对象理论》。那是我第一次接触到“范式”这个词汇用于表征面向对象,于是我也习惯在此引用“范式”这个词汇。尽管有些晦涩,但是我以为准确。也许有些书籍会把这个词汇翻译为“风范”,似乎也很传神。
为什么面向对象?
面向对象符合人类对世界的认知规律。
简单说,人类个体认识世界是从对周围事物的观察开始的,而且是从具体到抽象的,并且认识到事物的属性,状态,行为等等,以及事物之间的相互关系。而面向对象就是对这种思维方式的抽象表达。
面向对象与面向过程并不矛盾。
面向对象着重刻画系统中对象的关系和相互作用,已经对象本身的属性,状态,和行为。面向过程则是侧重于描述过程。而面向对象的程序设计,也是无法离开面向过程的。这种划分,只是在系统设计中,更强调过程,还是强调对象关系的比较而已。
【2009-12-22, 最近又研究了一下Scala,发现Scala是一个能把面向对象和面向过程,以及函数式编程很好的融合在一起的语言。】