什么是面向对象、面向过程?

1.1 面向对象

这种思想的实质是:程序可以添加新类型的对象使自身适用于某个特点的问题。所以你在阅读描述解决方案的代码时,也是在阅读问题的描述。
每个对象看起来都有点像一台微型计算机——它具有状态还有操作,用户可以要求对象执行这些操作。如果要对现实世界种的对象作类比,那么说它们都具有特性和行为似乎不错。
Alan Kay曾经总结了面向对象语言的五大特征:
1)万物皆为对象。将对象视为奇特的变量,它可以存储数据,除此之外,你还可以要求它在自身上执行操作。理论上讲,你可以抽取待求解决问题的任何概念化构件(狗、建筑物,服务等),将其表示为程序中的对象。
2)程序时对象的集合,它们通过发送消息来告知彼此所要做的。要想请求一个对象,就必须对该对象发送一条信息。更具体地说,可以把消息想象为对某个特定对象的方法的调用请求。
3)每个对象都有自己的由其他对象所构成的存储。换句话说,可以通过创建包含现有对象的包的方式来创建新类型的对象。因此,可以在程序中构建复杂的体系,同时将其复杂性隐藏在对象简单性背后。
4)每个对象都拥有其类型。按照通俗的说法,“每个对象都是某个类(Class)的一个实例”,这里“类”就是“类型”的同义词。每个类最重要的区别于其他类的特性就是“可以发送什么样的消息给它”。
5)某一特定类型的所有对象都是可以接受同样的消息。因为“圆形”类型的对象同时也是“几何形”类型的对象,所以一个“圆形”对象必定能接受发给“几何形”对象的消息。这意味着可以编写于“几何形”交互并自动处理所有与几何形性质相关的事物代码。这种可代替性时OOP(面向对象)中最强有力的概念之一。
Booch对对象提出了一个更加简洁的描述:对象具有状态,行为和标识。这就意味着每一个对象都可以拥有内部数据(它们给出了该对象的状态)和方法(它们产生的行为),并且每一个对象都可以唯一的与其他对象区分开来,具体的说每一个对象在内存中都有一个唯一的地址。

1.2 面向过程


面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。
就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章