我们一般都会很容易的听到面向过程程序设计和面向对象程序设计,但总有点只可意会不可言传的感觉,在这里问一下大师们,能不能给它们下个精确的定义,即何为面向过程程序设计,何为面向对象程序设计。
解决方案
10
面向对象编程(Object Oriented Programming,OOP,面向对象程序设计) 的主要思想是把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙一个事物在整个解决问题的步骤中的行为。
面向过程就是分析出解决问题所需要的步骤,然后用函数逐步实现,再依次调用就可以了。
面向对象和面向过程是两种不同的编程思想,没有哪一种绝对完美,要根据具体需求拟定开发方案。例如,开发一个小型软件或应用程序,工程量小,短时间内即可完成,完全可以采用面向过程的开发方式,使用面向对象,反而会增加代码量,降低开发效率。
面向过程就是分析出解决问题所需要的步骤,然后用函数逐步实现,再依次调用就可以了。
面向对象和面向过程是两种不同的编程思想,没有哪一种绝对完美,要根据具体需求拟定开发方案。例如,开发一个小型软件或应用程序,工程量小,短时间内即可完成,完全可以采用面向过程的开发方式,使用面向对象,反而会增加代码量,降低开发效率。
5
面向过程,就是找到怎么样用编程语言,实现程序。
找到事务运行的各种步骤,并实现这些步骤。
其实算法和数据结构,大部分讲的都是面向过程的。
面向对象,就是找出事物的内在联系,
从而设计出各种类和他们的行为,
是对面向过程的一种封装。
找到事务运行的各种步骤,并实现这些步骤。
其实算法和数据结构,大部分讲的都是面向过程的。
面向对象,就是找出事物的内在联系,
从而设计出各种类和他们的行为,
是对面向过程的一种封装。
5
请牢记:源代码本身的书写能否结构化或面向对象或符合设计模式或敏捷…并不重要,重要的是你能否使用结构化或面向对象或符合设计模式或敏捷…的方法命名标识符、阅读、修改、检查、测试源代码。
10
面向过程: 数据和操作数据的方法是分开的.
面向对象: 数据和操作数据的方法是在一起的.
面向对象: 数据和操作数据的方法是在一起的.
10
面向过程 就是把本人的程序组织成一个有先后顺序的执行流,程序的行为取决于当前执行流刚刚到达的位置,通过本人的编程精心组织执行流,外界的输入最终通过执行流的走向和执行到达的代码位置来使程序表现出对应的行为。
面向对象 就是把本人的程序组织成一个个的功能单元,每个功能单元包含数据和控制。本人的编程通常是通过控制来改变数据,从而达到控制各个功能单元的状态。通过改变每个功能单元的状态就达到让程序表现出对应的行为的目的。
有时候这两种思想在一套源代码中还比较模糊。而且严格的说每一个线程对机器来说都只能是过程式的。所以关键是分析作者的意图,看他是偏向设计程序的任务(小至代码行大到多个函数的调用次序)时间顺序(过程式思维方式)还是偏向于安排 数据和控制的空间位置(对象式思维方式)。
注意的是面向过程还是面向对象不是看使用何种编程语言而是看程序本身的设计了。最多只能说某某语言对某种思想的实现做的更好而已。而某种语言能否支持某个编程思想其实看的只是它对于相应的概念能否是自动(一旦设计成那种方式,在没有程序员干涉的情况下语言编译系统便自动使之做到)而强制性(只要写成那种方式,想取消都不行)的。
刚开始学者对面向过程还是面向对象的区别,最直接的印象:
面向过程:先怎么样后怎么样、假如遇到什么情况就怎么样,否则怎么样。
面向对象:功能单元(类、对象、模块等)。绝大部分的时候都只是[获取状态-〉判断-〉改变并回写状态]这一个行为模式包装成功能单元的各个接口。基本上一个程序就是由这些状态处理(通过调用接口)构成的(面向对象中的”状态“和面向过程中的状态处理系统中的”状态“不同。面向过程中的状态指的是功能单元中的数据。他可以是功能单元携带的东西,也可能被设计成能够反过来使数据的变化控制功能单元的行为。而且面向对象的数据和操作是绑定于功能单元的,而不是分散并直接掌握于数据的使用者手中)。
面向对象的思维方式典型的就是,”对于一组数据,本人管你外部怎么样变化,只要能做到某某行为,结果就始终是正确的,或说始终适合于使用这组数据的任何场景“最终数据变成了类数据成员而行为被封装成类接口。
面向对象 就是把本人的程序组织成一个个的功能单元,每个功能单元包含数据和控制。本人的编程通常是通过控制来改变数据,从而达到控制各个功能单元的状态。通过改变每个功能单元的状态就达到让程序表现出对应的行为的目的。
有时候这两种思想在一套源代码中还比较模糊。而且严格的说每一个线程对机器来说都只能是过程式的。所以关键是分析作者的意图,看他是偏向设计程序的任务(小至代码行大到多个函数的调用次序)时间顺序(过程式思维方式)还是偏向于安排 数据和控制的空间位置(对象式思维方式)。
注意的是面向过程还是面向对象不是看使用何种编程语言而是看程序本身的设计了。最多只能说某某语言对某种思想的实现做的更好而已。而某种语言能否支持某个编程思想其实看的只是它对于相应的概念能否是自动(一旦设计成那种方式,在没有程序员干涉的情况下语言编译系统便自动使之做到)而强制性(只要写成那种方式,想取消都不行)的。
刚开始学者对面向过程还是面向对象的区别,最直接的印象:
面向过程:先怎么样后怎么样、假如遇到什么情况就怎么样,否则怎么样。
面向对象:功能单元(类、对象、模块等)。绝大部分的时候都只是[获取状态-〉判断-〉改变并回写状态]这一个行为模式包装成功能单元的各个接口。基本上一个程序就是由这些状态处理(通过调用接口)构成的(面向对象中的”状态“和面向过程中的状态处理系统中的”状态“不同。面向过程中的状态指的是功能单元中的数据。他可以是功能单元携带的东西,也可能被设计成能够反过来使数据的变化控制功能单元的行为。而且面向对象的数据和操作是绑定于功能单元的,而不是分散并直接掌握于数据的使用者手中)。
面向对象的思维方式典型的就是,”对于一组数据,本人管你外部怎么样变化,只要能做到某某行为,结果就始终是正确的,或说始终适合于使用这组数据的任何场景“最终数据变成了类数据成员而行为被封装成类接口。