过程式设计思想和面向对象设计思想小结

1.过程式设计:

        诚然,过程式设计是一种自上而下的设计方法,设计者采用一个mian()函数,概括出整个程序需要做的事情,并且中间由许许多多的子函数组成,而在主函数调用这些子函数时,每个子函数又可以拆分成更小的子函数,然后继续,直到主函数结束,这样,一个过程式设计就完成了。过程式设计的特征是以函数为中心,用函数作为划分程序的基本单位,而数据在过程式设计中,往往处于从属位置。

        过程式设计的优点是便于理解和掌握,这种逐步细化问题的设计思维,与大多数人的思维方式相同。然而,对于一些比较复杂的问题,或是在开发中需求变化比较多的问题,往往显得力不从心。因为过程式设计采用的是自上而下的方法,所以就要求设计者在一开始就必须对问题有一定的理解,然而在问题复杂时,要做到这一点很难。与此同时,当开发需求发生变化时,以前对问题的理解也将不再适用。

        事实上,开发一个系统的过程,往往也是一个对系统不断了解和学习的过程,而过程式设计的方法忽略了这一点。

        在过程式设计的语言中,既有定义数据的元素(数据),也有定义操作的元素(函数),这样做的结果是数据和操作分离,导致对一种数据的操作分布在整个程序的各个角落,一个操作也可能会用到很多种数据。这种情况下,当需求发生变化时,对数据和操作的任何一部分想要进行修改,都会变得非常困难(数据与操作之间的耦合度较高的体现)。

        在过程式设计中,设计者是在mian()函数中,对整个系统进行一个概括的描述,再以此为起点,逐步细化出整个应用程序。假设编写一个图形界面的计算器程序和一个命令行界面的计算器程序,可以想象这两个版本的main()函数会有多大差异,由此衍生出的程序也会迥然不同。而这两个版本的程序,本应该有很大部分可以共用,这也就是过程式程序设计的一大弊病。

2.面向对象设计:

        面向对象是一种自下而上的程序设计方法,它不像过程式设计那样,一开始就要用mian()函数概括出整个程序。面向对象设计往往从问题的一部分入手,一点一点地构建出整个程序。面向对象设计以数据为中心。类作为表现数据的工具,是划分程序的基本单位,而函数在面向对象设计中,是类的接口。

        面向对象设计自下而上的特性,允许开发者从问题的局部开始,在开发过程中逐步加深对系统的理解。这些新的理解以及开发中遇到的需求变化,都会再作用到系统开发本身,形成一种螺旋式的开发方式。在这种开发方式中,对于已有的代码,常使用代码重构的技术,从而体现系统的变化。

        和函数相比,数据应该是程序中更稳定的部分。比如一个网上购物程序,无论怎么变化,大概都会处理货物、客户这些数据对象。但是,从抽象的角度看,数据不是稳定的,如果考虑这些数据对象的具体实现,它们甚至比函数还要不稳定。这是由于在一个数据对象中,增减字段是程序开发中的常事。在以数据为中心构建程序的同时,需要一种手段来抽象地描述数据,这种手段就是使用函数。

        在面向对象设计中,类封装了数据,而类的成员函数作为其对外的接口,抽象地描述了类。用类将数据和操作这些数据的函数放在一起,就是面向对象设计方法的本质。

        在面向对象设计中,类之间的关系有两种:客户关系和继承关系。客户关系,表示一个类会使用到另一个类,一般将这种关系中的Client类称为客户端,Server类称为服务器。继承关系,表示一个类对另一个类的继承,一般将这种关系中的Parent类称为父类,Child类称为子类。

        面向对象设计的过程,就是将各个类按以上两种关系组合在一起。这两种关系都非常简单,组合在一起却能提供强大的设计能力。

猜你喜欢

转载自blog.csdn.net/baidu_38760069/article/details/80180258