面向对象的程序设计语言与面向过程的程序设计语言

合集下载

面向对象和面向过程的程序设计语言

面向对象和面向过程的程序设计语言

面向对象和面向过程的程序设计语言面向对象和面向过程是两种不同的程序设计语言范式。

面向过程的程序设计语言是一种基于过程的编程范式,它将程序看作是一系列的指令集合,这些指令按照一定的顺序执行,以完成特定的任务。

而面向对象的程序设计语言则是一种基于对象的编程范式,它将程序看作是一系列的对象集合,这些对象包含了数据和方法,通过这些方法来操作数据,以完成特定的任务。

面向过程的程序设计语言通常是以函数为基本单位进行编程,它将程序分解为一系列的函数,每个函数都是一个独立的模块,它接收一些输入参数,执行一些操作,然后返回一个输出结果。

这种编程范式适用于一些简单的任务,例如数学计算、数据处理等。

面向过程的程序设计语言通常具有较高的执行效率和较小的内存占用,但是它的可维护性和可扩展性较差。

面向对象的程序设计语言则是以对象为基本单位进行编程,它将程序分解为一系列的对象,每个对象都包含了数据和方法,它们通过方法来操作数据,以完成特定的任务。

这种编程范式适用于一些复杂的任务,例如图形界面设计、游戏开发等。

面向对象的程序设计语言通常具有较好的可维护性和可扩展性,但是它的执行效率和内存占用较高。

面向对象和面向过程的程序设计语言各有优缺点,选择哪种编程范式取决于具体的应用场景和需求。

在实际的开发中,往往需要根据具体的任务需求来选择合适的编程范式,有时也需要将两种编程范式结合起来使用,以达到更好的效果。

总之,面向对象和面向过程是两种不同的程序设计语言范式,它们各有优缺点,选择哪种编程范式取决于具体的应用场景和需求。

在实际的开发中,需要根据具体的任务需求来选择合适的编程范式,有时也需要将两种编程范式结合起来使用,以达到更好的效果。

面向对象程序设计

面向对象程序设计

面向对象程序设计⏹结构化程序设计的基本内容:1.结构的类型:顺序、分支、循环2.结构化程序设计思想:利用过程或函数来抽象和模拟客观现实。

3.结构化程序设计方法:1)重点放在如何实现细节过程方面,将数据与函数分开。

2)形式:主模块+若干个子模块(如C:main()+子函数)。

4.特点:自顶向下,逐步求精——功能分解。

5.缺点:效率低,是手工作坊式的编程。

6.结构化程序的问题——数据与算法分离,程序数据和操作数据的函数是分离的。

⏹面向对象程序设计观点:1.自然界是由各种各样的实体(对象)所组成,每种对象都有自己的内部状态和运动规律,不同对象之间的相互联系和相互作用就构成了各种不同的系统,进而构成整个客观世界。

2.程序设计方法:使用面向对象的观点来描述模仿并处理现实问题。

3.要求:高度概括、分类和抽象。

4.目的:实现软件设计的产业化。

5.基本概念:1)对象:用来描述客观事物的一个实体,它是构成系统的一个基本单元。

一个对象具有一组属性和行为。

实体对象*一台计算机抽象对象*一项计划2)对象构成要素:对象标识符:是对象的名称,用来区别于其他对象。

属性:是用来描述对象静态特征的一个数据项。

行为:是用来描述对象动态特征和行为的操作。

3)消息(Message)用于描述事件发生的信息。

消息是对象之间发出的行为请求。

多个消息构成一个事件(Event)。

对象之间通过传递消息相互影响。

对象示例:一个“学生”对象的例子对象名:学生属性:学号:123456姓名:令狐冲年龄:18专业:信管行为:修改学号、姓名、专业、年龄等等对象示例:一个“课程”对象的例子:对象名:课程属性:课程号:123456课程名:程序设计任课教师:莫名选课要求:学时:48行为:获取并修改课程名、课程号、学时数、选课要求、任课教师等4)类:是具有相同属性和行为的一组对象的集合,它为属于该类的全部对象提供统一的抽象描述,是对象集合的再抽象。

5)类和对象的关系:类(抽象定义)<->对象(实例)6)类<->对象举例学生<->学生王强课程<->C++程序设计类型<->变量,如C语言中的int和int x;7)类的实例——用类定义的类变量,即对象。

面向对象与面向过程程序设计方法的比较

面向对象与面向过程程序设计方法的比较

面向对象与面向过程程序设计方法的比较摘要:区别于一般讲述面向对象技术的文章,本文系统地比较了面向对象技术和面向过程技术的异同,并着重介绍面向对象技术以及它的封装、继承和多态三个特点,让读者对面向对象有一个形象的理解。

然后通过比较和举例,文章分析了OO技术在软件工程中的三大优势。

Abstract:Being different from general articles about object-oriented technology ,this paper systematically compared the object-oriented technology and the process-oriented technology, and mainly introduces the object-oriented technology and its three characteristics :packaging, inheritance and polymorphism, to make the reader have an image of understanding of object-oriented. Then through the comparison and some examples, this paper analyzes the OO based software engineering in three points.关键字:面向对象面向过程软件工程Key words:Object-Oriented Process-Oriented Software-Engineering一引言20世纪60年代中期开始爆发的软件危机,使人们认识到大中型软件系统与小型软件系统的本质区别,软件工程以及面向对象编程(Object-Oriented Programming)技术得以应运而生。

程序设计的主要方法

程序设计的主要方法

程序设计的主要方法
编程或程序设计的主要方法主要包括结构化编程、面向对象编程和面向过程编程等三种。

结构化编程,这是早期程序设计的主要方法,重点是减少代码的复杂性,提高程序的可读性。

它主要包括顺序、选择和循环等三种基本控制结构。

常见的结构化编程语言有C,Pascal等。

面向对象编程是一种热门的编程方法,强调通过抽象的对象模型以模拟世界中的对象。

这种方法的核心思想是数据抽象、封装、多态和继承。

面向对象编程语言具有良好的扩展性和复用性,是现代大多数复杂应用程序的首选设计方法。

常见的面向对象编程语言有Java,C++等。

面向过程编程是一种以过程为中心的编程方法,强调通过算法来解决问题。

这种编程方法以任务的完成为目标,每个过程都被看作是一个独立的实体。

过程之间通过输入和输出数据进行交流。

常见的面向过程编程语言有Fortran,C等。

此外,还有一些较新的程序设计方法,例如函数式编程、逻辑编程等。

函数式编程是一种以函数为主导的编程方法,逻辑编程则是一种以逻辑推理为基础的编程方法。

这些程序设计方法相互之间并不排斥,往往在实际应用中会结合使用。

面向对象的概念是什么?和面向过程有什么区别

面向对象的概念是什么?和面向过程有什么区别

面向对象的概念是什么?和面向过程有什么区别?面向对象是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。

面向过程,也就是结构化程序设计是一种自顶向下逐步求精的设计方法,和单入口单出口的程序结构。

面向对象的概念,特点是什么?1.编程模型所有计算机均由两种元素组成:代码和数据.精确的说,有些程序是围绕着"什么正在发生"而编写,有些则是围绕"谁正在受影响"而编写的.第一种编程方式叫做"面向过程的模型",按这种模型编写的程序以一系列的线性步骤(代码)为特征,可被理解为作用于数据的代码.如C 等过程化语言.第二种编程方式叫做"面向对象的模型",按这种模型编写的程序围绕着程序的数据(对象)和针对该对象而严格定义的接口来组织程序,它的特点是数据控制代码的访问.通过把控制权转移到数据上,面向对象的模型在组织方式上有:抽象,封装,继承和多态的好处.2.抽象面向对象程序设计的基本要素是抽象,程序员通过抽象来管理复杂性.管理抽象的有效方法是使用层次式的分类特性,这种方法允许用户根据物理含义分解一个复杂的系统,把它划分成更容易管理的块.例如,一个计算机系统是一个独立的对象.而在计算机系统内部由几个子系统组成:显示器,键盘,硬盘驱动器,DVD-ROM,软盘,音响等,这些子系统每个又由专门的部件组成.关键是需要使用层次抽象来管理计算机系统(或其他任何复杂系统)的复杂性.面向对象程序设计的本质:这些抽象的对象可以被看作具体的实体,这些实体对用来告诉我们作什么的消息进行响应./* (我的理解)*计算机是一个实体,我要输入字符,显示器显示出来,那么*计算机(对象).输入(键盘属性).显示(显示方法)*使用分层来引用,操作.而不用管计算机内部如何处理.*只要有计算机对象,它就能响应我的操作,而我敲键盘,*计算机对象就把这个消息传给屏幕,屏幕显示.*/计算机对象包含了它所有的属性,以及操作,这就是面向对象程序设计的三大原则之一:封装.3.封装封装是一种把代码和代码所操作的数据捆绑在一起,使这两者不受外界干扰和误用的机制.封装可被理解为一种用做保护的包装器,以防止代码和数据被包装器外部所定义的其他代码任意访问.对包装器内部代码与数据的访问通过一个明确定义的接口来控制.封装代码的好处是每个人都知道怎样访问代码,进而无需考虑实现细节就能直接使用它,同时不用担心不可预料的副作用.在JAVA中,最基本的封装单元是类,一个类定义着将由一组对象所共享的行为(数据和代码).一个类的每个对象均包含它所定义的结构与行为,这些对象就好象是一个模子铸造出来的.所以对象也叫做类的实例.在定义一个类时,需要指定构成该类的代码与数据.特别是,类所定义的对象叫做成员变量或实例变量.操作数据的代码叫做成员方法.方法定义怎样使用成员变量,这意味着类的行为和接口要由操作实例数据的方法来定义.由于类的用途是封装复杂性,所以类的内部有隐藏实现复杂性的机制.所以JA VA中提供了私有和公有的访问模式,类的公有接口代表外部的用户应该知道或可以知道的每件东西.私有的方法数据只能通过该类的成员代码来访问.这就可以确保不会发生不希望的事情.4.继承继承是指一个对象从另一个对象中获得属性的过程.是面向对象程序设计的三大原则之二,它支持按层次分类的概念.例如,波斯猫是猫的一种,猫又是哺乳动物的一种,哺乳动物又是动物的一种.如果不使用层次的概念,每个对象需要明确定义各自的全部特征.通过层次分类方式,一个对象只需要在它的类中定义是它成为唯一的各个属性,然后从父类中继承它的通用属性.因此,正是由于继承机制,才使得一个对象可以成为一个通用类的一个特定实例.一个深度继承的子类将继承它在类层次中的每个祖先的所有属性.继承与封装可以互相作用.如果一个给定的类封装了某些属性,它的任何子类将会含有同样得属性,另加各个子类所有得属性.这是面向对象程序在复杂性上呈线性而非几何增长的一个重要概念.新的子类继承其所有祖先的所有属性.子类和系统中的其他代码不会产生无法预料的交互作用.5.多态多态是指一个方法只能有一个名称,但可以有许多形态,也就是程序中可以定义多个同名的方法,用"一个接口,多个方法"来描述.可以通过方法的参数和类型引用.6.封装,继承,多态的组合使用在由封装,继承,多态所组成的环境中,程序员可以编写出比面向过程模型更健壮,更具扩展性的程序.经过仔细设计的类层次结构是重用代码的基础.封装能让程序员不必修改公有接口的代码即可实现程序的移植.多态能使程序员开发出简洁,易懂,易修改的代码.例如:汽车从继承的角度看,驾驶员都依靠继承性来驾驶不同类型(子类)的汽车,无论这辆车是轿车还是卡车,是奔驰牌还是菲亚特牌,驾驶员都能找到方向盘,手刹,换档器.经过一段时间驾驶后,都能知道手动档与自动档之间的差别,因为他们实际上都知道这两者的共同超类:传动装置.从封装的角度看,驾驶员总是看到封装好的特性.刹车隐藏了许多复杂性,其外观如此简单,用脚就能操作它.发动机,手刹,轮胎大小的实现对与刹车类的定义没有影响.从多态的角度看,刹车系统有正锁反锁之分,驾驶员只用脚踩刹车停车,同样的接口可以用来控制若干种不同的实现(正锁或反锁).这样各个独立的构件才被转换为汽车这个对象的.同样,通过使用面向对象的设计原则,程序员可以把一个复杂程序的各个构件组合在一起,形成一个一致,健壮,可维护的程序类是对象的抽象,实例是类的实现C++中对象和类有何联系和区别:它的区别就像int a = 0;中的int 和a 的区别一样。

简述程序设计语言的分类

简述程序设计语言的分类

简述程序设计语言的分类1程序设计语言程序设计语言(Programming Language)是一种计算机语言,具有完整的语法和语义功能,用于解释和定义计算机的行为。

它使用为人类而创造的语言,以便让计算机能够完成要求。

它是一种极其强大的工具,可以用来构建复杂的软件系统。

由于它的重要作用,程序设计语言在计算机领域中扮演了重要的角色。

2细分类别根据他们的基本特点,程序设计语言可以大致分为四类:面向过程语言、面向对象语言、函数式语言和脚本语言。

(1)面向过程语言是以算法为基础,循序渐进执行任务的程序设计语言。

它是以程序实现问题解决的程序设计语言,主要应用于数值计算和大型应用系统的设计。

C、FORTRAN、Pascal和BASIC等都是面向过程语言。

(2)面向对象语言是以对象为基础的程序设计语言。

它是以面向对象程序设计思想实现问题解决的程序设计语言,主要应用于非数值型,尤其是人机交互界面类的复杂系统的设计。

Java、C++、Objective C、Smalltalk等都是面向对象语言。

(3)函数式语言是以函数为基础的程序设计语言。

它是以函数式程序设计思想实现问题解决的程序设计语言,主要应用于系统的设计和优化。

LISP、Scheme等都是函数式语言。

(4)脚本语言是服务于某一领域的专用程序设计语言,它是以脚本程序设计思想实现问题解决的程序设计语言,主要应用于特定的领域。

Perl、PHP、Python等都是此类语言。

3总结综上所述,程序设计语言可以从不同的视角分为四大类:面向过程语言、面向对象语言、函数式语言和脚本语言。

它们各有特点,为不同的行业应用设计了各种计算机语言,实现了不同的任务。

程序设计语言的分类及区别

程序设计语言的分类及区别程序设计语言是一种用于定义计算机程序的形式语言。

它们可以分为多种不同的类型和范式,每种类型都有其独特的特点和用途。

本文将讨论程序设计语言的分类及其区别,以帮助读者更好地了解不同类型的编程语言。

一、按照编程范式分类1.面向过程编程语言面向过程编程语言是按照一系列的步骤来执行任务的编程范式。

其中最典型的代表是C语言,它以函数为基本单位,通过调用函数来实现程序的功能。

面向过程语言的优点是执行效率高,但缺点是代码结构较为复杂,不易维护和扩展。

2.面向对象编程语言面向对象编程语言是以对象为基本单位来组织程序的编程范式。

其中最流行的代表是Java和C++,它们通过类和对象的概念来实现程序的功能。

面向对象语言的优点是代码结构清晰,易于维护和扩展,但缺点是执行效率较低。

3.函数式编程语言函数式编程语言是以函数为基本单位来组织程序的编程范式。

其中最典型的代表是Haskell和Lisp,它们通过函数的组合和递归来实现程序的功能。

函数式语言的优点是代码简洁、易读、易测,但缺点是学习曲线较陡。

二、按照应用领域分类1.通用编程语言通用编程语言是可以用于各种类型的应用程序开发的编程语言。

其中最流行的代表是Java、C++和Python,它们具有很强的通用性和灵活性,可以应用于各种领域。

2.脚本语言脚本语言是一种用于快速开发小型应用程序或自动化任务的编程语言。

其中最典型的代表是JavaScript和Shell脚本,它们通常用于编写网页脚本、系统管理脚本等。

3.专用领域语言专用领域语言是为了解决特定问题而设计的编程语言。

比如Matlab 用于数学计算、SQL用于数据库查询、HTML用于网页设计等。

这些语言通常具有较高的领域适应性和执行效率。

三、按照语法结构分类1.命令式语言命令式语言是以一系列指令的形式来描述程序执行过程的编程语言。

其中包括面向过程语言和面向对象语言,如C、Java等。

这类语言的特点是程序由一系列步骤组成,依次执行。

初识C语言(山东联盟)智慧树知到答案章节测试2023年潍坊学院

第一章测试1.高级程序设计语言分为面向过程的程序设计语言和面向对象的程序设计语言,C语言属于面向过程的程序设计语言。

A:对B:错答案:A2.顺序结构的算法中,只有个别的步骤是有条件的被执行的。

A:错B:对答案:A3.算法的输入和输出特性指的是任何一个算法必须有输入步骤和输出步骤,否则,算法就不完整。

A:对B:错答案:B4.关于程序设计的描述,正确的是A:简单的C语言程序是不需要调试的B:算法设计是程序设计的重要过程C:调试程序是程序设计必不可少的过程D:程序中的语法错误在编译阶段会被检查出来答案:BCD5.任何一个C语言程序都有一个主函数,该主函数的标识符是:A:符合标识符规则即可B:MAINC:MainD:main答案:D6.属于C语言合法的用户标识符的是:A:ResultB:_inputC:-nameD:M_N答案:ABD7.编辑调试C语言程序的唯一工具是VC++ 6.0集成编译环境。

A:对B:错答案:B8.对于任何循环结构算法,说法正确的是:A:在每一次执行循环体时循环体中的每个步骤都会被执行到B:循环体可能一次也不被执行C:循环体至少被执行一次D:循环体中的步骤可能会被执行多次答案:BD9.算法的通用性是指算法能够适应一类问题,而不是某个特定的问题。

例如,求解一元二次方程的算法,应能适应一般性方程,而不是针对某个特定方程设计。

A:对B:错答案:A10.C语言程序的注释信息以“/”和“/”加以限定,只能出现在被注释的语句之后。

A:对B:错答案:B第二章测试1.属于C语言数据类型标识符的是:A:mainB:charC:floatD:Int答案:BC2.通常,程序设计语言将各种数据分为不同的类型进行处理。

A:错B:对答案:B3.C语言的整数可以使用三种数制表示,即:十进制、八进制和十六进制。

属于八进制整数的是:A:77B:01234C:077D:0789答案:BC4.int型变量c已在程序中定义并赋值,能正确输出c的值的是:A:printf(“%d”,c)B:printf(“%d”,&c)C:printf(“%d”,c)D:printf(c ,“%d”)答案:AC5.int型变量c已在程序中定义,能为变量c正确输入整数值的语句是:A:scanf(“%d”,c)B:scanf(“%d”,&c)C:scanf(“%d,&c”)D:scanf(“%d”,”&c”)答案:B6.若s是float型变量并已经赋值,则执行printf(“S=%10.3f”,s);语句后,输出的s值其小数位将保留3位小数。

面向对象程序设计历史及发展

面向对象程序设计的历史及发展姓名:郭一恒班级:0901学号:2009302540014自从计算机发展以来,程序设计的方法为了适应越来越复杂的程序设计的需要而发生了急剧的变化。

计算机刚问世时.程序设计是通过计算机的控制板用二进制机器指令打孔完成的。

随着程序设计的发展,产生了汇编语言,程序员用助记符号代替机器指令,能够处理更大更复杂的程序。

随着计算机处理事物的越来越多,产生了高级程序设计语言,它们给程序员提供更多的处理复杂事务的工具。

但它们不是支持结构清晰、易于读懂的程序设计语言。

60年代诞生了结构化的程序语言,这就是者如c语言和Pascal语言支持的方法。

结构化程序设计语言的应用使得有可能较容易地编写复杂程度适中的程序。

一旦达到一定的复杂程度度,使用结构比的程序语言也会无法控制,其复杂程度已远远超过了程序员的管理所及。

如今,许多程序没汁语言已经或达到了结构化程序设汁方法的极限。

应运而生的面向对象的程序设汁方法就是为了解决这类问题的。

面向对象的程序设汁方法汲取了结构化程序设计方法的先进的思想,并把它同支持用户用新方法进行程序设计的概念结合起来。

所有的面向对象的程序设计语言一般都包含三个最基本的概念:对象、继承性和多态性。

一、面向对象程序设计的历史面向对象程序设计方法作为90年代程序设计的新思想、新方法,已经和正在给计算机界带来一场深刻的革命。

实际上,对面向对象程序设计方法的研究由来已久。

早在本世纪40年代,在对数字模拟的分析研究中就引入了“对象”的概念,随后在对模拟系统的分析中,大量的模拟仿真语言,如Simscript、GPSS、CSL和SimulaⅡ,为此应运而生。

在Simula Ⅱ中的“活动(Activity)、过程(Process)”概念正是如今OOPL中“类”和“对象”概念的雏型。

60年代中期,随着SimulaI中不断引入子类、模块、封装等新概念,导致了Simula67,Modula—2等具有OOP特点的一些模拟仿真语言的出现,它们被称为OOPL的祖先或前身。

面向对象与面向过程程序设计的思考与解释

面向对象与面向过程程序设计的思考与解释(蒋世贤电子商务071 山东工商学院)面向过程程序设计与面向对象程序设计都是一种设计程序的方法,由于其对对象操作的不同而产生了不同的设计思想。

本文在笔者学习了《面向对象程序设计——C++语言描述》这门课后,由笔者整理总结面向对象程序设计与面向过程程序设计的区别与联系后,写下此文,主要阐明笔者对两种程序设计思想的思考与理解。

一、面向对象与面向过程程序设计简介面向对象程序设计中的以“对象”作为编程实体最早可以追溯到1960年的Simula 67语言。

而面向过程程序设计则诞生的比面向对象程序设计要早的多。

两者都有着各自的核心思想结构。

面向过程设计的思想发展较早,当今的C语言就是面向过程的一个典型,而面向对象则以其独特的程序设计视角被当今人广泛接受,C++就是其典型的代表。

(一)面向过程程序设计面向过程的结构化程序设计方法就是采用面向过程的方法来设计结构化程序。

结构化程序通常包含一个主过程和若干个子过程,其中每个子过程都描述了某一个小问题的解决方法再由主过程自顶向下调用各子过程,来逐步解决整个问题。

整个执行过程是从主过程开始,再在主过程的结束语句处结束。

因此,结构化程序设计方法是一种数学思维或计算机思维方法,和人们认识世界时所习惯使用的方法不同。

面向过程程序设计通常采用自顶向下设计方法进行设计。

在这种设计方法中,程序的每一个步骤直接的函数依赖关系是非常紧密的。

要解决一个问题,就要通过一个个所设计好的函数步骤进行,每一个环节都是环环相扣的,都不能出错。

一旦一个环节出错,将影响至整个问题的解决结果。

面向过程设计语言以C语言、Pascal语言为主。

而关于相关代码的举例说明,我们将在下面进行对比介绍。

(二)面向对象程序设计面向对象程序设计(英语:Object-oriented programming,缩写:OOP),指一种程序设计范型,同时也是一种程序开发的方法论。

它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象的程序设计语言与面向过程的程序设计语言
首先C面向过程的编程,C++和JAVA都是面向对象的编程。

二者用最简单的例子来说
比如说:我吃饭
面向过程:着重在吃的过程,要具体描述吃的没一个步骤,比如夹米饭,张嘴,我进行咀嚼等之类的过程
面向对象:是先将我封装成一个类,米饭封装成一个类,然后把吃饭进行封装,来各自实现的。

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。

把上面每个步骤用分别的函数来实现,问题就解决了。

而面向对象的设计则是从另外的思路来解决问题。

整个五子棋可以分为1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。

第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的i变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

可以明显地看出,面向对象是以功能来划分问题,而不是步骤。

同样是绘制棋局,这样的行为在面向过程的设计中分散在了总多步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。

而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。

功能上的统一保证了面向对象设计的可扩展性。

比如我要加入悔棋的功能,如果要改动面向过程的设计,那么从输入到判断到显示这一连串的步骤都要改动,甚至步骤之间的循序都要进行大规模调整。

如果是面向对象的话,只用改动棋盘对象就行了,棋盘系统保存了黑白双方的棋谱,简单回溯就可以了,而显示和规则判断则不用顾及,同时整个对对象功能的调用顺序都没有变化,改动只是局部的。

再比如我要把这个五子棋游戏改为围棋游戏,如果你是面向过程设计,那么五子棋的规则就分布在了你的程序的每一个角落,要改动还不如重写。

但是如果你当初就是面向对象的设计,那么你只用改动规则对象就可以了,五子棋和围棋的区
别不就是规则吗?(当然棋盘大小好像也不一样,但是你会觉得这是一个难题吗?直接在棋盘对象中进行一番小改动就可以了。

)而下棋的大致步骤从面向对象的角度来看没有任何变化。

当然,要达到改动只是局部的需要设计的人有足够的经验,使用对象不能保证你的程序就是面向对象,初学者或者很蹩脚的程序员很可能以面向对象之虚而行面向过程之实,这样设计出来的所谓面向对象的程序很难有良好的可移植性和可扩展性。

相关文档
最新文档