对对象模型通俗理解
第2章 对象建模

第2章对象建模对于软件是什么以及程序如何工作,面向对象编程语言和设计语言有一个共同的理解。
对象模型是UML和面向对象编程语言共享的公共计算模型。
尽管编程语言和设计语言是在不同的抽象级别来表示程序的,但是我们理解这两种语言的基础都是对象模型所提供的对运行程序的抽象描述。
本章在一个简单应用的背景下,引出并描述对象模型的本质特征。
通过例子介绍UML 提供的这些概念的表示法,说明如何实现这些概念,解释设计语言和编程语言之间的密切联系。
2.1 对象模型对象模型不是一个特定的UML模型,而是一种考虑程序结构的一般方式。
它由构成面向对象设计和编程活动的基础的概念框架组成。
如同它的名字使人想起的那样,对象模型的基本性质是,计算是发生在对象之内和对象之间的。
各个对象负责维护系统数据的一部分,并负责实现系统整体功能的某些方面。
当程序运行时,对象典型地由内存区域表示,该内存区域中就包含着该对象存储的数据。
对象还支持方法或函数,以访问和更新对象所包含的数据。
因此,对象结合了计算机程序的两个根本方面,即数据和处理,在其他软件设计方法中这二者是分离的。
然而,程序要比一组孤立的对象集合描述得更多。
各个对象中存储的数据之间的关系必须要记录,而且程序的整体行为只有从多个不同对象的交互中才能显现出来。
通过允许将对象连接到一起可以支持这些需求。
典型地,这是通过使一个对象能够拥有对另一个对象的引用,或者更具体地讲,是知道其他对象的位置来实现的。
因而,对象模型将一个运行的程序视作是一个对象网络,或图(graph)。
对象构成该图中的结点,连接对象的弧称为链接(link)。
每个对象包含程序数据的一个小子集,对象网络的结构则表示这些数据之间的关系。
对象可以在运行时创建和销毁,对象之间的链接也可以改变。
因此,对象网络的结构,或拓扑结构,是高度动态的,会随着程序的运行而改变。
对象之间的链接还可以作为对象交互的通信路径,使得对象能够通过互相发送消息(messages)进行交互。
(9-)对象数据模型

GIS中的各种地物,在几何性质方面不外乎表 现为四种类型,即点状地物、线状处物、面 状地物以及由它们混合组成的复杂地物,因 而这四种类型可以作为GIS中各种地物类型的 超类。
空间地物
点状地物
线状地物
面状地物
复杂地物
电 视 塔
桥 梁
车 站
道 路
水 管
电 力 线
建 筑 物
公 湖 园
矿 山
大 县 学
⑵ 面向对象数据模型的优点
(1)具有表示和构造复杂对象的能力。
(2)封装性和信息隐蔽技术提供了模块化
机制。 (3)继承和类层次技术提供了重用机制。
小结:
关系数据模型和关系数据库管理系统基
本上适应于 GIS中属性数据的表达与管理。若
采用面向对象数据模型,语义将更加丰富, 层次关系也更明了。可以说,面向对象数据 模型是在包含关系数据库管理系统的功能基 础上,增加面向对象数据模型的封装、继承 和信息传播等功能。
该关系存在插入异常、删除异常等问题。例如, 如果SID为15的学生退学了,则不仅删除了该学生
的信息,同时删除了D楼的收费信息,出现了删除
异常。如果新建了一个大楼,还没有学生入住,则 该新楼的信息也无法插入到表中,也就是出现了插 入异常。同样,如果有400名学生住在同一个楼里, 则该楼的信息就要重复400次,因此也存在数据冗
将“工资”表规范化为第一范式: 职工编号 001 002 003 …… 姓名 基本工资 职务工资 工龄工资 赵军 2000 500 500 刘娜 1800 400 300 李东 2300 700 800 …… …… …… ……
满足第一范式的关系模式不一定就是一个好的关系 模式。
(2) 第二范式(2NF) 定义:若关系模式R是1NF,并且每一个非主属性都完 全函数依赖于R的码,则R属于2NF。
面向对象模型

(4)事务短寿,并发控制机制简单。
20世纪90年代来,在关系型数据库基础上,引入面向对象技术,从而使关系型数据库发展成为一种新型的面 向对象关系型数据库。面向对象的程序设计方法是目前程序设计中主要的方法之一,它简单、直观、自然,十分 接近人类分析和处理问题的自然思维方式,同时又能有效地用来组织和管理不同类型的数据。
模型对比
面向对象模型针对数据模型的三要素,对关系数据模型和面向对象数据模型进行比较。
(1)在关系模型中基本数据结构是表,而面向对象数据模型中对应的是类。关系中的数据元组相当于面向对 象数据模型中的实例。
(2)在关系数据模型中的数据操作都归结为对关系的运算。在面向对象数据模型中,对类的操作分为两部分: 一是封装在类内的操作,即方法;二是类间相互沟通的操作,即消息。
面向对象模型
采用面向对象方法设计的数据模型
01 历史简介
03 对象模型 05 优缺点
目录
02 关系模型缺陷 04 封装和消息 06 模型对比
面向对象模型是一种新兴的数据模型,它采用面向对象的方法来设计数据库。面向对象的数据库存储对象是 以对象为单位,每个对象包含对象的属性和方法,具有类和继承等特点。Computer Associates的Jasmine就是 面向对象模型的数据库系统。
对象和对象标识
对象是面向对象编程中最重要的概念,用对象来表示现实世界中的实体。一个学生、一门课程、一次考试记 录都可以看作对象。每个对象包含一组属性和一组方法。
属性用来描述对象的状态、组成和特性,是对象的静态特征。一个简单对象如整数,其本身就是起状态的完 全描述,不需要其他属性,这样的对象称为原子对象。属性的值可以是复杂对象。一个复杂对象包含若干,而这 些属性作为一种对象,又可能包含多个属性,这样就形成了对象的递归引用,从而组成各种复杂对象。
Word 对象模型概述

Word 对象模型概述若要开发使用 Microsoft Office Word 的解决方案,可以与 Word 对象模型提供的对象进行交互。
Word 对象是按层次顺序排列的,层次结构顶端的两个主类是Application和Document类。
这两个类非常重要,原因是在大部分时间里,您要么是在使用 Word 应用程序本身,要么是以某种方式处理 Word 文档。
Word 对象模型严格遵循用户界面。
Application 对象表示整个应用程序,每个 Document 对象表示单个 Word 文档,Paragraph对象对应于单个段,以此类推。
这些对象各自都有很多方法和属性,您可以使用这些方法和属性操作对象或与对象交互。
Microsoft Visual Studio 2005 Tools for the Microsoft Office System (VSTO 2005) 将这些本机对象中的很多对象扩展为可在文档级自定义项中使用的宿主项和宿主控件。
这些控件具有额外的功能,例如数据绑定功能和事件。
例如,本机Word Microsoft.Office.Interop.Word.Bookmark对象被扩展为Microsoft.Office.Tools.Word.Bookmark控件,该控件可与数据绑定并公开事件。
有关宿主项和宿主控件的更多信息,请参见宿主项和宿主控件概述。
有关 Word 2003 对象模型的完整信息,请参见随 Word 一起安装的Visual Basic for Applications (VBA) 文档,或参见“Welcome to the Microsoft Office Word 2003 VBA Language Reference”(欢迎使用Microsoft Office Word 2003 VBA 语言参考)(/fwlink/?linkid=27950)。
有关Word 2007 对象模型的完整信息,请参见随 Word 一起安装的 VBA 文档,或参见MSDN 网站(/fwlink/?LinkId=72870) 上的2007 Microsoft Office system 开发人员内容。
对象模型的概念

对象模型的概念
对象模型指的是对现实世界中实体的抽象,通常用于计算机程序中。
对象模型通过描述对象的属性和行为来对其进行建模。
在面向对象的编程中,对象模型是非常重要的,它可以帮助程序员更好地理解问题,并且在实现功能时提供了便利。
对象模型通常由类和对象组成,类是对一组对象的描述,对象则是类的一个实例。
类包含了对象所具有的属性和方法,属性指对象的特征,方法则是对象可以执行的操作。
通过定义类和对象,程序员可以方便地操作对象,实现程序的功能。
对象模型还可以通过继承和多态来增加灵活性。
继承允许一个类从另一个类继承属性和方法,可以降低代码的重复性,简化程序的设计。
多态则允许不同的对象对同一个方法有不同的实现,可以提高程序的可扩展性和可维护性。
总之,对象模型是面向对象编程的核心概念之一,理解对象模型可以帮助程序员更好地设计和实现程序,提高程序的质量和效率。
- 1 -。
面向对象分析模型总结

2
主要原则
(1)抽象 什么叫抽象? OO方法广泛地运用抽象原则,例如: ·系统中的对象是对现实世界中事物的抽象, ·类是对象的抽象, ·一般类是对特殊类的进一步抽象, ·属性是事物静态特征的抽象, ·操作是事物动态特征的抽象。 过程抽象 任何一个完成确定功能的操作序列,其使用者都 可把它看作一个单一的实体,尽管实际上它可能 是由一系列更低级的操作完成的。 数据抽象 根据施加于数据之上的操作来定义数据类型,并 限定数据的值只能由这些操作来修改和观察。
汽车
奖杯
钟表
操作员 职员
天平 楼房 飞机
起重机
23
如何发现参与者 ——考虑人员、设备、外系统
人员—— 系统的直接使用者 直接为系统服务的人员 设备—— 与系统直接相联的设备 为系统提供信息 在系统控制下运行 不与系统相连的设备 × 计算机设备 × 外系统—— 上级系统 子系统 其它系统
24
用况(use case)
7
基本模型——类图 面向对象的建模中最重要、最基本的模型图 集中而完整地体现了面向对象的概念 为面向对象的编程提供了直接、可靠的依据 可以从三个层次来看
对象层
需求模型——用况图 每个用况是一项系统功能使用情况的 说明,把每一类参与者对每一项系统 功能的使用情况确切地描述出来,便 全面地定义了系统的功能需求
数据接口部分设计
构件化与系统部署
向OOP输出OOD模型
12
OOA与OOD的关系
一致的概念与表示法 OOA和OOD采用一致的概念和表示法,从而不存在分析与 设计之间的鸿沟。 不同的内容、目标和抽象层次
OOA:研究问题域和用户需求,运用面向对象的观点发现 问题域中与系统责任有关的对象,以及对象的特征和相互 关系。目标是建立一个直接映射问题域,符合用户需求的 OOA模型。 OOD:在OOA模型基础上,针对选定的实现平台进行系统 设计,按照实现的要求进行具体的设计,目标是产生一个 能够在选定的软硬件平台上实现的OOD模型。 OOA模型:抽象层次较高,忽略了与实现有关的因素 OOD模型:抽象层次较低,包含了与实现平台有关的细节
文档对象模型(DOM)

文档对象模型(DOM)一、文档对象模型(DOM)DOM是Document Object Model(文档对象模型)的简称,是对XML文档进行应用开发、编程的应用程序接口(API)。
作为W3C 公布的一种跨平台、与语言无关的接口规范,DOM提供了在不同环境和应用中的标准程序接口,可以用任何语言实现。
DOM采用对象模型和一系列的接口来描述XML文档的内容和结构,即利用对象把文档模型化。
这种对象模型实现的基本功能包括:●描述文档表示和操作的接口;●接口的属性和方法;●接口之间的关系以及互操作。
DOM可对结构化的XML文档进行解析,文档中的指令、元素、实体、属性等所有内容个体都用对象模型表示,整个文档被看成是一个有结构的信息树,而不是简单的文本流,生成的对象模型就是树的节点,对象同时包含了方法和属性。
因此,对文档的所有操作都是在对象树上的进行。
在DOM中,树中的一切都是对象,不管是根节点还是实体的属性。
在DOM中主要有以下三个对象:● XML文档对象XML文档既是一种对象,同时又代表整个XML文档。
它由根元素和子元素组成。
● XML节点对象XML节点对象代表的是XML文档内部的节点,如元素、注释、名字空间等。
● XML节点列表XML文档模块列表代表了节点的集合。
利用DOM,开发人员可以动态地创建XML文档,遍历结构,添加、修改、删除内容等。
其面向对象的特性,使人们在处理XML解析相关的事务时节省大量的精力,是一种符合代码重用思想的强有力编程工具。
二、DOM的四个基本接口(引用自:)在DOM接口规范中,有四个基本的接口:Document,Node,NodeList以及NamedNodeMap。
在这四个基本接口中,Document接口是对文档进行操作的入口,它是从Node接口继承过来的。
Node接口是其他大多数接口的父类,象Documet,Element,Attribute,Text,Comment等接口都是从Node接口继承过来的。
理解对象模型图

课程预览
ArcObject对象模型图(OMD)
阅读一个对象模型图
类的类型
类之间的关系
接口符号、属性、方法
解释对象模型图,写代码
一、ArcObject对象模型图
OMDs帮助你写代码
显示每个类的接口、属性和方法 显示类之间的关系 在几个对象模型图超过1500个类 超过1600个接口
这些接口也是有效的。但是详细ect Browser).
类继承要查找父类的接口 接口继承的属性和方法 示例:接口
八、虫孔
虫孔
Element on ArcMap OMD
FeatureLayer on Map Layer OMD
Example: MxDocument > Map > layer
找到ArcObject对象模型图
二、对象模型图的标记
继承
组成 创建 多重性 关联 *
Bird
Abstract
Nest
CoClass
Chicken
* CoClass
Feature
Class
2
Egg
Wing Class 例如table--createRow
Class
对象模型图的标记的几个基本概念:
生 成
(三)抽象类Abstract
1、概念
抽象类:不能用以创建新对象,但可以用来 指定子类。如Layer是FeatureLayer和 RasterLayer的抽象类。
2、特点 不可创建,不可实例化 把一些类共同的属性和方法 提取出来,用其它类来继承。 二维带阴影的矩形
为子类定义通用的接口
返回一个值
返回一个接口
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本故事纯属虚构,如有雷同,请莫对号入座……
每个东东能做点什么用?
❖ 月老:牵线搭桥,介绍认识。 ❖ 小伙:追求献花,表达爱意。 ❖ 姑娘:仰慕倾情,以身相许。 ❖ 恋人:拍拖…结婚。 ❖ 玫瑰花:令姑娘头晕,传情示爱。
术语的图形符号
对象名
类名 属性 方法
A 属性 方法
B 属性 方法
A与B有关联
A 属性 方法
B 属性 方法
A是B的聚集
A 属性 方法
B 属性 方法
B继承了A ,A是B的泛化
用术语来建模
❖ 还是问上述六个问题; ❖ 可以打乱顺序问,同时问; ❖ 顺着知道答案的问题问下去; ❖ 把答案用术语的图形记下来。
用术语图形再次演绎古典浪漫爱情故事……
“我的一个朋友结婚了”
❖ A.这里面有什么东东?
这些东东都呆在什么地方?
❖ 月老:婚介所,交友网站。 ❖ 小伙:软件园,住唐家。 ❖ 姑娘:人民医院,住新香洲。 ❖ 恋人:情侣路,电影院,… ❖ 玫瑰花:花店里,小伙手中,姑娘手中。
这些东东之间有什么关系?关系 月老 小伙源自姑娘恋人 玫瑰月老
干妈
舅妈
撮合者 没关系
小伙 干儿子
男友老公 男主角 买送主
建立面向对象的世界观
对对象模型的通俗理解
本教程的主要内容和作用
❖ 通过通俗简单的生活事例来演绎对象建模的 基本概念。
❖ 开阔学员视野,让学员轻松树立面向对象的 世界观。
❖ 让学员掌握用面向对象方法分析问题的要领。 ❖ 为学员学习对象建模方法热身。
本教程适应的人员
❖ 中级面向对象程序员 ❖ 初级业务设计员 ❖ 中级业务分析员 ❖ 初级系统分析员 ❖ 高级技术支持人员
软件人的目的
•传统目的:
控制计算机运行。
•现代目的:
在计算机中模拟现实世界的物和事。
站在六个角度来看待事物
❖ AA.这.这里里面面有有什什么么东东东东??
B
默记一下! ❖ BB.每.每个个东东东东看看上上去去是是什什么么样样的的??
❖ CC..每每个个东东东东能能做做点点什什么么用用?? E
C F
❖ DD.这.这些些东东东东都都呆呆在在什什么么地地方方??
❖ EE..这这些些东东东东之之间间有有什什么么关关系系?? A
❖ FF..这这些些东东东东是是怎怎么么成成事事的的??
D
举例说明……
“昨天我的一个朋友结婚了”
❖ 这里面有什么东东?
月老,小伙,姑娘,恋人,玫瑰花。
❖ 每个东东看上去是什么样的?
❖ 事物之间的关系非常多,面向对象的观 点一般分为主要的三类:
整体-部分关系,甲是乙的一个组成部分。
❖如恋人和小伙,恋人和姑娘的关系。
笼统-具体关系,甲是乙的一个特例。
❖如人和小伙,人和月老,人和姑娘的关系。
伙伴关系,甲会对乙做点什么。
❖如月老和小伙、姑娘,小伙和玫瑰,小伙和姑 娘的关系。
F.这些事物是怎么成事的?
具体事物 事物类型 属性 能力 位置 整-部关系 笼-具关系 伙伴关系 成事过程
对象 类 属性 方法 部署 聚集关系 继承关系 关联关系 用例实现
我的一个朋友,他未婚妻… 小伙,姑娘,玫瑰,月老… 年龄,体格,性情… 牵线,追求,结婚… 软件园,情侣路… 恋人-小伙,恋人-姑娘 人-小伙,人-姑娘 小伙-姑娘,小伙-玫瑰 相识,相恋,结婚
D.这些事物都呆在什么地方?
❖ 每个事物都会有它合理的或者必须的空间位 置和逻辑位置。尤其当这些位置对事物的行 为造成重要影响的时候,表明他们的位置是 极其重要的。
❖ 面向对象的世界观中叫事物的部署。 ❖ 上例列出的位置对故事主要情节没有太大的
影响,本来是可以不列出来的。
E.这些事物之间有什么关系?
姑娘 外甥女 女友太太
女主角 受主
恋人 作品 组合
组合
使用者
玫瑰 没关系 信物
受物心意 信物
这些东东是怎么成事的?
❖ 月老牵线搭桥,介绍小伙和姑娘认识; ❖ 姑娘和小伙一见钟情,成为一对恋人; ❖ 一对恋人开始拍拖; ❖ 小伙追求献花,表达对姑娘的爱意; ❖ 姑娘收到999火红玫瑰,激动得头晕目眩; ❖ 小伙真心求婚,姑娘以身相许; ❖ 一对恋人终于走入婚姻殿堂。
用面向对象世界观看事物的答案
❖ A.这里面有些什么东东? ❖ 答:
这里面有的都是事物。 注:如果大陆第一个翻译Object的人不翻译为“对象”,
而是把它翻译为“事物”就好了,这样就可以省掉这个 问题。台湾人的翻译就非常准确,叫做“物件”。
❖ 如上例,
有月老,小伙,姑娘,恋人,玫瑰等事物(对象)
B.每个事物看上去是什么样的?
❖ 每个事物看上去都有自己的属性,在每个属 性上都有一个特征值。
❖ 如上例中:
月老,有属性:年纪,特征值:较大; 小伙,有属性:体格,特征值:强壮; 姑娘,有属性:性情,特征值:温柔; 恋人,有属性:关系,特征值:黏糊; 玫瑰花,有属性:颜色,特征值:火红。
C.每个事物能做点什么用?
❖ 每个事物都具备某种能力; ❖ 这些事物有什么用,就要看它有什么能力了。
注:如果大陆第一个翻译Method的人就把它翻译为 “能力”就好了,这样也可以省掉这个问题。台湾 人的翻译好象也叫“方法”。
❖ 如上例中:
月老有牵线搭桥,介绍认识的能力(方法); 小伙有“追求”的能力,姑娘有“嫁人”的能力; 恋人有“拍拖”的能力,玫瑰有“示爱”的能力。
建模就是认识现实世界
客观世界
世界
认识 世界
主观世界
世界是 什么样 的呢?
改造 世界
不同类型的人有不同的世界观
E=MC2
X+Y=Z 1+1=?
事物,运动 矛盾,变化,
发展
类,关 联,对
象
持不同的世界观就会得到对现实世界的不同认识—— 建立不同的世界模型。
只存在同一个现实世界
所以,模型没有对错、只有符合建模人目的多少之分。
❖ 每个事物都会尽量利用伙伴的能力; ❖ 整体事物的能力依靠部分事物的能力; ❖ 笼统事物的属性和能力就是具体事物的属性
和能力;具体事物除了有笼统事物的属性和 能力外,还可以有自己特殊的。 ❖ 事物分工协作,互通信息,共同完成整体的 目标。
俗语对术语的映射
俗语
术语
例子
出了什么事? 用例
我的一个朋友结了婚。