什么是面向对象(什么是面向对象法?与结构化方法
结构化分析设计方法遵循面向过程的问题求解方法,其中心思想是用计算机能够理解的逻辑来描述和表达待解决的问题及其具体的解决过程。结构化的程序设计的核心就是算法加数据结构。 面向过程方法大多基于瀑布模型,需要对整体结构做以通盘的掌握。当用户的需求发生变化时,整个软件功能就随之发生变化,从而导致整个软件结构的不稳定。
同时,过程分析和数据分析始终是两个相对独立的过程,两者之间存在着明显的边界,这个问题始终在结构化方法中终没解决。 对象是面向对象的程序设计的核心,它由描述状态的属性(变量)和用来实现对象行为的方法(函数)组成,完成了从数据模型到处理模型的结合与统一。面向对象方法论的出发点和基本原则是尽可能的模拟人类习惯的思维方式,使开发软件的方法与过程尽可能的接近人类认识世界解决问题的方法与过程。
结构化的程序设计是一种自上而下的设计方法,设计者用一个主函数概括出整个应用程序需要做的事情主线,并由对一系列子函数的调用组成。以函数为中心。 结构化方法是将系统看成是过程的集合,过程与数据实体之间交互,过程接受输入并产生输出; 面向对象方法则不再把程序看成工作在数据上的一系列过程或函数的集合,而是把程序看作是相互协作而又彼此独立的对象的集合。
从概念方面看,结构化软件是功能的集合;面向对象软件是事物对象的集合。 从构成方面看,结构化软件是过程和数据的集合,以过程为中心;面向对象软件是数据和相应操作的封装,以对象为中心。 从运行控制方面看,结构化软件采用顺序处理方式,由过程驱动控制;面向对象软件采用交互式,并行处理方式,由消息驱动控制。
结构化程序设计特点:
优点: 与非结构化程序相比,结构化程序在调试、可读性和可维护性等方面都有很大的改进。
缺点:代码重用性不高:以过程为中心设计新系统,除了一些标准函数,大部分代码都必须重新编写。
由于软、硬件技术的不断发展和用户需求的变化,按照功能划分设计的系统模块容易发生变化,使得开发出来的模块的可维护性欠佳。
面向过程模式将数据与过程分离,若对某一数据结构做了修改,所有处理数据的过程都必须重新修订,这样就增加了很多的编程工作量。
面向对象的优点:
而面向对象围绕现实世界的概念来组织模块,采用对象描述问题空间的实体,用程序代码模拟现实世界中的对象,使程序设计过程更自然、更直观。
面向过程是以功能为中心来描述系统,而面向对象是以数据为中心来描述系统。相对于功能而言,数据具有更强的稳定性。
面向对象模拟了对象之间的通信。就象人们之间互通信息一样,对象之间也可以通过消息进行通信。这样,我们不必知道一个对象是怎样实现其行为的,只需通过对象提供的接口进行通信并使用对象所具有的行为功能。而面向过程则通过函数参数和全局变量达到各过程模块联系的目的。
面向对象把一个复杂的问题分解成多个能够完成独立功能的对象(类),然后把这些对象组合起来去完成这个复杂的问题。采用面向对象模式就象在流水线上工作,我们最终只需将多个零部件(已设计好的对象)按照一定关系组合成一个完整的系统。这样使得软件开发更有效率。