面向对象和面向过程是编程的两种思想模式。面向过程是以“过程或步骤”为中心的编程思想,视“流程或过程”为一等公民,面向过程首先分析解决问题的所有步骤,然后通过函数方式把这些步骤依次调用,认为现实世界由一个个“流程或过程”组成;面向对象是以“事务对象”为中心的编程思想,视“对象”为一等公民,面向对象首先抽取问题所依赖的所有对象,以及对象的属性和操作方法,然后通过一个个对象有机组合实现业务功能。

我们常说:C语言是面向过程语言,C++和Java是面向对象的语言,实际这种论述是不准确的。面向对象和面向过程仅仅是设计和思考模式的不同,同语言实现其实没有多大的关系。只是C语言视“函数”为一等公民,更适合做面向过程的编程;C++和Java视“类”对象为一等公民,更适合做面向对象的编程罢了。

本博客系列将采用C语言实现经典的23类设计模式,为了更好的阐述和描述这些模式,掌握基于C语言的面向对象的3大特性(即封装,继承和多态)机制将是必要条件,因为这些设计模式均是采用面向对象的思维模式。

专题系列:专栏的第二,三,四专题将阐述如何通过C语言实现面向对象的封装,继承和多态;3个专题不但可让我掌握C语言面向对象,还会加深我们对C++语言实现细节的掌握;从第五专题开始将介绍经典的23类设计模式。