面向对象-消息与依赖
- 格式:ppt
- 大小:2.67 MB
- 文档页数:31
面向对象程序设计中的消息传递机制研究随着计算机技术的不断发展,面向对象程序设计成为了当今程序设计领域中的主流方法之一。
在面向对象程序设计中,消息传递机制是非常重要的概念,它是面向对象程序设计中的核心思想之一。
本文将从三个方面对面向对象程序设计中的消息传递机制进行研究。
一、什么是消息传递机制?消息传递机制是面向对象编程中实现对象之间交互的一种方式。
在传统的面向过程编程中,程序通过函数调用来实现不同模块之间的交互。
但是在面向对象编程中,每个对象都是自包含的,这时候就需要引入一种新的交互方式。
这种方式就是消息传递。
消息是一些对象引用的一些数据或命令的组合。
消息可以传递给一个单独的对象,也可以广播到多个对象。
在消息传递机制中,对象不直接调用其他对象中的方法,而是通过发送消息的方式来通知其他对象执行操作。
每个对象都有自己的线程,当一个对象收到消息时,它会在自己的线程上对消息进行处理。
二、消息传递机制的优点和缺点使用消息传递机制具有以下优点:1. 解耦合。
消息传递机制在对象之间建立了一条松散的连接,对象之间变得独立。
这意味着一个对象的改变不会对其他对象产生影响。
2. 可扩展性。
消息传递机制使得程序的各个部分可以灵活地添加、移除或者替换,从而能够实现更大的程序的功能变化。
3. 可靠性。
由于任务在对象上运行,对象的状态完全被封装,所以可以保证操作的可靠性。
但是消息传递机制也存在以下缺点:1. 性能问题。
消息传递机制可能引入额外的开销,由于消息的传递需要带来一些处理时间,可能会降低程序的运行速度。
2. 建立对象需要时间。
由于每个对象都需要建立一个自己的线程,所以当有大量对象时会大量消耗时间。
三、消息传递机制的实现方法消息传递机制可以用于单进程内部,也可以用于不同进程之间的通信。
下面介绍一下消息传递机制的实现方法:1. 基于共享内存的消息传递在同一个进程内部的不同对象之间通信时,采用基于共享内存的消息传递是一个常见的方式。
面向对象编程思想面向对象是一种新兴的程序设计方法,或者说它是一种新的程序设计范型,其基本思想是使用对象,类,继承,封装,消息等基本概念来进行程序设计。
它是从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位(而不是用一些与现实世界中的事物相关比较远,并且没有对应关系的其它概念来构造系统)。
这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。
它可以有不同层次的理解:从世界观的角度可以认为:面向对象的基本哲学是认为世界是由各种各样具有自己的运动规律和内部状态的对象所组成的;不同对象之间的相互作用和通讯构成了完整的现实世界。
因此,人们应当按照现实世界这个本来面貌来理解世界,直接通过对象及其相互关系来反映世界。
这样建立起来的系统才能符合现实世界的本来面目。
从方法学的角度可以认为:面向对象的方法是面向对象的世界观在开发方法中的直接运用。
它强调系统的结构应该直接与现实世界的结构相对应,应该围绕现实世界中的对象来构造系统,而不是围绕功能来构造系统。
从程序设计的角度来看,面向对象的程序设计语言必须有描述对象及其相互之间关系的语言成分。
这些程序设计语言可以归纳为以下几类:系统中一切皆为对象;对象是属性及其操作的封装体;对象可按其性质划分为类,对象成为类的实例;实例关系和继承关系是对象之间的静态关系;消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式;方法是消息的序列。
面向对象面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。
面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。
如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。
1.1 知识要点1.面向对象技术的基本概念∙面向对象技术是以对象为基础、以事件或者消息来驱动对象执行处理的程序设计技术。
∙对象是包含客观事物特征的抽象实体,是属性和行为的封装体。
在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”这一公式来表达。
∙类是对具有相同属性和行为的一组对象的抽象描述。
∙事件是系统产生的动作或是运行应用程序产生的动作。
事件通过消息描述,消息是描述事件发生的信息。
∙消息是对象间交互的手段,是要求某个对象执行某个操作的规格说明。
2.面向对象技术的基本特征∙抽象性是指忽略事物中与当前目标无关的非本质特征,而强调本质特征的特征。
∙封装性是指把对象的属性和行为封装在一起,并尽可能隐藏对象的内部细节的特征。
∙继承性是指特殊类的对象拥有其一般类的属性和行为的类与类之间层次关系的特征。
∙多态性是指不同对象收到相同消息时可以产生多种不同的行为方式的特征。
【重点】∙面向对象技术的概念。
∙类与对象的概念及关系。
∙面向对象与面向过程程序设计的区别。
∙面向对象技术的基本特征。
面向对象技术与Visual C++学习指导2【难点】∙类与对象的概念。
∙面向对象与面向过程程序设计的区别。
∙面向对象技术的基本特征。
1.2 习题解答1.什么是面向对象技术?【问题解答】面向对象技术是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术。
它具有抽象性、封装性、继承性及多态性。
2.面向对象与面向过程程序设计有什么不同?【问题解答】面向对象与面向过程程序设计有如下不同:(1)面向过程程序设计方法采用函数(或过程)来描述对数据的操作,但又将函数与其操作的数据分离开来;面向对象程序设计方法将数据和对数据的操作封装在一起,作为一个整体来处理。
(2)面向过程程序设计方法以功能为中心来设计功能模块,难于维护;而面向对象程序设计方法以数据为中心来描述系统,数据相对于功能而言具有较强的稳定性,因此更易于维护。
(3)面向过程程序的控制流程由程序中预定顺序来决定;面向对象程序的控制流程由运行时各种事件的实际发生来触发,而不再由预定顺序来决定,更符合实际需要。
第五章面向对象的需求分析面向对象的需求分析方法的核心是利用面向对象的概念和方法为软件需求建造模型。
它包含面向对象风格的图形语言机制和用于指导需求分析的面向对象方法学。
面向对象的思想最初起源于 20世纪 60年代中期的仿真程序设计语言Simula67。
20世纪80年代初出现的Smalltalk 语言及其程序设计环境对面向对象技术的推广应用起到了显著的促进作用。
20世纪90年代中后期诞生并迅速成熟的UML(Unified Modeling Language,统一建模语言)是面向对象技术发展的一个重要里程碑。
UML 统一了面向对象建模的基本概念、术语和表示方法,不仅为面向对象的软件开发过程提供了丰富的表达手段,而且也为软件开发人员提供了互相交流、分享经验的共用语言。
本章首先介绍面向对象的主要概念和思想。
在概述了UML的全貌之后,以“家庭保安系统”为实例,介绍与需求分析相关的部分 UML语言机制以及基于UML的面向对象的需求分析方法和过程。
第一节面向对象的概念与思想一、面向对象的概念关于“面向对象”,有许多不同的看法。
Coad和 Yourdon给出了一个定义:“面向对象 = 对象 + 类 + 继承 + 消息通信”。
如果一个软件系统是使用这样4个概念设计和实现的,则认为这个软件系统是面向对象的。
一个面向对象的程序的每一成分应是对象,计算是通过新的对象的建立和对象之间的消息通信来执行的。
1.对象(object)一般意义来讲,对象是现实世界中存在的一个事物。
可以是物理的,如一个家具或桌子,如图 5-1-1所示,可以是概念上的,如一个开发项目。
对象是构成现实世界的一个独立的单位,具有自己的静态特征(用数据描述)和动态特征(行为或具有的功能)。
例如:人的特征:姓名、性别、年龄等,行为:衣、食、住、行等。
图 5-1-1 对象的定义(1)对象、属性、操作、消息定义对象可以定义为系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和一组对属性进行操作的服务组成。
信息系统整理第一章信息系统工程导论(概述)1.何谓信息系统?指利用信息技术,以计算机为主要处理工具的收集、传输、加工、存储信息,并能输出有用信息的系统。
6. 一般信息系统有哪些基本功能?(P10)常见的信息系统的基本功能如下:(1)信息收集:由人或其他环境设施输入数据(信息),为系统输入信息。
(2)信息存储:一般用数据库作为信息存储工具,具有管理大量数据集、提供从海量数据中快速检索指定信息的功能。
(3)信息加工:根据业务部门信息加工的要求,提供统计/分析/计算等信息处理功能。
(4)信息输出(查询/显示):根据人或系统的要求,输出有用的、可视化的信息。
(5)人机交互(界面):利用该功能,实现信息系统和人、应用环境之间进行信息交换,为人提供一个环境友好、使用便利的人机交互界面。
8.什么是信息系统工程?信息系统工程与一般系统工程有何区别?(P17-18)(1)定义:信息系统工程是按照工程学原理指导信息系统的构建过程,把信息系统的开发建设作为一项系统工程来管理,并且运用系统论和工程学的观点把信息系统的开发过程分为总体规划、系统分析、系统设计和系统实现等阶段。
(2)区别:信息系统工程具有一般系统的特征属性,可以用系统科学与系统工程学的基本理论和基本方法来指导。
同时,信息系统又是一种特定的计算机应用系统,具有一般计算机应用系统开发的特征属性。
信息工程技术已经形成了一系列软件开发技术规范、测试技术和管理方法,这些技术方法具有系统工程的思想,但又不完全一致。
10. 简述信息系统工程的方法论体系。
(P18-21)所谓方法论是指一组相关方法的集合。
信息系统工程方法论是系统工程方法在信息领域中的应用,其产生与发展主要源于信息系统工程的实践探索和理论总结。
它的主要内容涉及3个方面:(1)一般系统工程的通用方法。
(2)信息系统工程方法。
信息系统工程方法从工程实践的角度,根据应用范围和抽象程度可以划分为战略层、战役层和战术层3个不同层次。
●下面关于面向对象方法中消息的叙述,不正确的是____(2)__。
(2)A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息C. 应用程序之间可以相互发送消息D.发送与接收消息的通信机制与传统的子程序调用机制不同正确答案:B【解析】在系统中既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此的通信,这样的方法才称为"面向对象的方法"。
●面向对象技术中,对象是类的实例。
对象有三种成份:____(3)____、属性和方法(或操作)。
(3) A. 标识B. 规则C. 封装D. 消息正确答案:A解析:对象有三种成份:标识(对象名)、属性和方法(或操作)。
●在面向对象技术中,类属是一种__(1)__机制。
一个类属类是关于一组类的一个特性抽象,它强调的是这些类的成员特征中与__(2)__的那些部分,而用变元来表示与__(3)__的那些部分。
(1)A.包含多态B.参数多态C.过载多态D.强制多态(2)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关(3)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关解析:在面向对象技术中,对象在收到信息后要予以响应。
不同的对象收到同一消息可产生完全不同的结果,这一现象称为多态。
多态有多种不同的形式,其中参数多态和包含多态称为通用多态,过载多态和强制多态成为特定多态。
参数多态应用比较广泛,被称为最纯的多态。
这是因为同一对象、函数或过程能以一致的形式用于不同的类型。
包含多态最常见的例子就是子类型化,即一个类型是另一类型的子类型。
过载多态是同一变量被用来表示不同的功能,通过上下文以决定一个类所代表的功能。
即通过语法对不同语义的对象使用相同的名,编译能够消除这一模糊。
强制多态是通过语义操作把一个变元的类型加以变换,以符合一个函数的要求,如果不做这一强制性变换将出现类型错误。
一、选择题1.类的结构是()。
(E)A.由代码来表示B.由属性和关系来表示C.由操作来表示D.由对象的交互来表示E.选项B和C2.类的行为是()。
(A)A.由一组操作决定B.由类的属性决定C.对类的每一个对象唯一的D.由父类决定E.选项A和B3.顺序图反映对象之间发送消息的时间顺序,它与()是同构的。
(C)A.用例图B.类图C.协作图D.状态图4.()定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。
(A)A.用例图B.类图C.活动图D.状态图5.状态图包括()。
(E)A.类的状态B.状态之间的转换C.类执行的动作D.触发类的动作的事件E.所有以上选项6.下列属于状态的组成部分的有( AB )。
A.名称B.转移C.条件D.事件7.下列各种图可用于静态建模的有()。
(B)A.状态图B.类图C.序列图D.活动图8.下列不属于属性的可见性的是()。
(C)A.公有的B.私有的C.私有保护的D.保护的9.下面不属于用况之间关系的是()。
(A)A.友元B.扩展C.包含D.泛化10.通常对象有很多属性,下面仅能在对象内部访问的属性可见性限制是()。
(D)A.公有的(public)B.受保护的(protected)C.友员(friendly)D.私有的(private)11.在用况之间,会有三种不同的关系,下列不是用况之间关系的是()。
(D)A.包含(include)B.扩展(extend)C.泛化(generalization)D.关联(connect)12.在ATM自动取款机的工作模型中(用户通过输入正确的用户资料,从银行取钱的过程),下面不是“Actor”的是()。
(D)A.用户 B.ATM取款机 C.ATM取款机管理员 D.取款13.下面不是活动图中的基本元素的是()。
(D)A.状态、分支B.分叉、汇合C.泳道、对象流D.用况、状态14.在下面的图例中,哪个用来描述活动(activity)()。