结构化开发方法&面向对象开发方法
结构化开发方法和面向对象开发方法之比较:
结构化方法是一种基于如下概念的开发策略,即一个系统应该被划分为两个部分:数据和功能,且数据和加工数据的功能是分离的。而面向对象方法解决问题的思路是从现实世界中的客观对象(如人或事物)出发,尽量运用人类的思维方式(如抽象和分类)来构造软件系统。面向对象开发方法不是把系统定义为两个分离的部分(数据和功能),而是把它们定义为一组正在交互的对象。对象可以完成一些事情(就是说它们有功能),它们也知道一些事情(就是说它们有数据)。这使得软件开发者能更有效地思考问题,并以其他人也能看懂的方式把自己的认识表达出来。
以一个图书借阅管理系统的设计为例。如果采用结构化方法,我们将设计数据库表结构,以及访问这些数据的程序,如下图所示。数据库中存放有图书管理员、读者和图书的信息,也有读者借阅信息,预约信息等。程序可以操作数据库,让图书管理员登记读者的借阅情况,让读者查看图书的预约信息、自己的借阅信息,等等。
![](https://www.cnblogs.com/images/cnblogs_com/shenyanyun/5.jpg)
结构化开发方法和面向对象开发方法的比较(左结构化右面向对象)
现在以一种面向对象的观点来重新考虑图书借阅管理系统。在现实世界中,有学生、老师、图书管理员、图书,所有这些人和物都将被当成对象来考虑。学生知道一些事情(他们有自己的姓名、学号、班级和电话号码等)也可以完成一些事情(如借阅图书、预约图书、退还图书、浏览图书信息等)。老师也知道一些事情,同样也能完成一些事情。从系统的观点来看,图书也知道一些事情,也能完成一些事情。要实现这样的系统,可以一定一组类。类是相似对象的通用表示,是创建对象的模板。这些类包括功能(程序)和数据,它们将和其他类一起,构成我们的应用。系统运行时,将以这些类为模板创建若干对象,这些对象相互交互,实现系统的功能。
面向对象与面向过程程序设计的不同点:
面向过程的程序设计方法将客观事物中本质上密切相关、相互依赖的数据和对数据的操作相互分离,这种实质上的依赖与形式上的分离使得大型程序既难以编写,也难以调试、修改和维护,代码的可重用性和共享性差。
而面向对象程序设计方法是一种以对象为基础,以事件或消息来驱动对象执行相应处理的程序设计方法。它将数据及对数据的操作封装在一起,作为一个相互依存、不可分离的整体——对象;它采用数据抽象和信息隐蔽技术,将这个整体抽象成一种新的数据类型——类。类中的大多数数据,只能通过本类方法进行操作和处理。面向对象程序设计以数据为中心而不是以功能为中心来描述系统,因而非常适合于大型应用程序与系统程序的开发。
在程序结构上,面向对象程序与面向过程程序也有很大的不同。面向过程的程序主要由顺序结构、选择结构和循环结构组成,程序的基本单位是函数,程序的执行顺序也是确定的。而面向对象程序由类的定义和类的使用两部分组成,程序的基本单位是类,在主程序内定义对象,并确定对象之间消息的传递规律,程序中的所有操作都是通过向对象发送消息来实现的,对象接到消息后,通过消息处理函数完成相应的操作。