如何阅读对象模型图
1.2 理解对象模型图(OMD)
Method
河南信阳师范学院城市与环境科学学院张兴国
根据网上AOVBA开发教程(esri版权所有)编辑
6-11
Setting properties
Property Put: Most ArcObjects properties
Property
Do
holds a value or a copy of an object
*
Layer
'Is pLayer a FeatureLayer? If TypeOf pLayer Is IFeatureLayer Then MsgBox "Yes!, it’s a feature layer" End If
FeatureLayer Others
根据网上AOVBA开发教程(esri版权所有)编辑
Application ThisDocument
河南信阳师范学院城市与环境科学学院张兴国
根据网上AOVBA开发教程(esri版权所有)编辑
6-10
Property and method symbols
Property
哑铃形状的图标
Property Get (read)
Property Set (write)
河南信阳师范学院城市与环境科学学院张兴国
根据网上AOVBA开发教程(esri版权所有)编辑
6-13
Finding interfaces
棒棒糖类型的图标 () Nhomakorabea继承接口是有效的 该接口被本类使用. 所有的属性和放都列表在类图中.
这些接口也是有效的。但是详细的 属性和方法必须在其它地方浏览。 (e.g., Object Browser).
类图和对象图
{ . .. }
参数
MyReferencedClass myFunction2( … ) { . .. }
void myFunction3( … ) { MyReferencedClass m … } }
or 返回类型 or 局部变量
派生属性和派生关联
派生属性(关联)指可以由其他 属性(关联)计算得到的属性, 名字前加”/”.
用户
操作员
管理员
泛化关系
泛化的目的
自顶向下的属性继承。可以使得子类共享父类的属性和操 作,实现继承。
自底向上的实例替换。可以使得子类的实例用于任何父类 被声明使用的地方,实现多态。
继承
Rose中可以看到子类已继承了父类的属性 private、implementation属性不被继承 public、protected属性可被继承
关联
关联角色(role)
关联两端的类可以以某种角色参与关联。 如果在关联上没有标出角色名,则隐含地用类名作为角
色名。 生成代码后会有和角色名相应的属性出现。 自返关联通常必须标明角色。
关联角色 + 表示可见性
关联角色 n 表示多重性
Company +employer #employee Person
monitor
n student
关联
限定关联
在关联端紧靠源类图标处可以有限定符(qualifier),带 有限定符的关联称为受限关联或限定关联。
限定符的作用就是在给定关联一端的一个对象和限定符之 后,可以唯一确定另一端的一个对象或对象集。
受限关联用于一对多或多对多的关联。将目标类的多重性 从“多”降为“一”。
类图和对象图
第8章类图和对象图
具有标识性属性的类
8.3.4 特征的可见性
类中的每个特征可以有一个相关的可见性,指定该特 征可以被其他类利用的程度 UML定义了4中可见性,即公有(public)、保护 (protected)、私有(private)以及包(package) 私有特征只能在该特征的所属类中使用 保护特征还可以在其所属类的子孙类中使用 公有特征可以在任何类中使用 具有包可见性的特征可以由所属类的同一个包中的其 他类使用
mcount : Integer code title : String credit:integer=15
具有类作用域的属性
8.3.2 操作
操作具有名字,还可以有参数和返回结果,如同编程 语言中的函数一样 在类图中省略操作很常见。原因是在孤立地考虑一个 类时,很难决定该类应该提供什么操作。 必要的操作是通过考虑系统的全局行为是如何由组成 系统的对象网络实现而发现的
第8章 类图和对象图
系统的静态模型描述系统所操纵的数据块之间结构上 的关系,它们描述数据如何分配到对象之中,这些对 象如何分类,以及它们之间可以具有什么关系 静态模型并不描述系统的行为,也不描述系统中的数 据如何随着时间而演进 对象图和类图是两种最重要的静态模型 对象图展示系统在给定时间持有的数据,这些数据可 以表示为各个对象、在这些对象中存储的属性值或者 这些对象之间的链接
可见性的图形化表示是在特征的名字前面加一个符号, 公有属性用“+”表示,保护用“#”,私有用“”,包 用“~” 没有为可见性定义默认值,所以如果类中没有显示可 见性,就认为是未定义的 一个常见的经验规则是假定属性是私有的,如果要在 子孙类中使用则是保护的,而操作是公有
8.4 关联
对象图的另一个主要的结构特征是在对象之间存在链接 相关的链接也可以用一个单独结构描述,称为关联 由链接表达的思想可以用一种更一般的有关类之间的关 系描述 关联涉及了多个类,并模型化了类之间的关系 下面的图模型化了雇佣的关联
UML对象图与类图的选择原则与对比分析详解
UML对象图与类图的选择原则与对比分析详解UML(Unified Modeling Language)是一种用于软件开发过程中的标准建模语言,它提供了一套丰富的图形符号和规范,帮助开发人员更好地理解和描述软件系统的结构和行为。
在UML中,对象图和类图是两种常用的建模工具,它们各自有着不同的特点和适用场景。
本文将对UML对象图和类图进行选择原则和对比分析,帮助读者更好地理解它们的应用。
一、UML对象图UML对象图是描述系统中对象之间的静态关系的一种图形表示方式。
它主要用于展示系统中对象的实例以及它们之间的关系。
对象图通常用于详细描述系统的某个特定状态或者场景,它能够清晰地展示对象之间的交互和依赖关系。
对象图的主要特点是直观、具体,能够很好地展示对象的属性和方法。
它适用于需求分析和系统设计的初期阶段,帮助开发人员更好地理解系统的需求和设计方案。
对象图可以帮助开发人员发现系统中的潜在问题和矛盾,从而提前进行调整和优化。
然而,对象图的局限性在于它只能展示系统的某个特定状态或者场景,不能全面地描述系统的整体结构和行为。
因此,在系统设计的后期阶段,开发人员通常会使用类图来更全面地描述系统的结构和行为。
二、UML类图UML类图是描述系统中类之间的静态关系的一种图形表示方式。
它主要用于展示系统的整体结构和类之间的关系。
类图是UML中最常用的一种图形表示方式,它能够清晰地展示类的属性、方法和关联关系。
类图的主要特点是抽象、概括,能够很好地展示系统的整体结构和类之间的关系。
类图适用于系统的整体设计和架构描述,它能够帮助开发人员更好地理解系统的总体设计思路和模块划分。
与对象图相比,类图具有更高的抽象层次和更全面的描述能力。
它能够展示系统的整体结构和行为,帮助开发人员更好地理解和分析系统的复杂性。
因此,在系统设计的后期阶段,开发人员通常会使用类图作为主要的建模工具。
三、选择原则与对比分析在实际的软件开发过程中,开发人员需要根据具体的需求和场景选择合适的建模工具。
如何阅读对象模型图上课讲义
2、接口查找
快速得知ArcGIS Engine接口所属命名空间的几种方式
1.Visual Stduio 2005中提供的智能感知(鼠标悬浮在接口上就能看到)或“转 到定义”(理论上提供F12快捷)
2.使用帮助文档的索引 ArcGIS的帮助文档可以说是非常强悍的,如下图所示:
2、接口查找
3.使用AE自带的工具:【Library Locator】 这个工具的使用比较简单(如果用.NET的话,勾选窗体下部的复选框),该工具
IDrive IRace
RaceCar
Fuel
Accelerate Brake
LapTime PitStop
接口跳转时要特别注意: 同一个Com类或则向上(父类)可以实现接口跳转 向下或同级不可以实现接口跳转
COM所建立的是一个软件模块与另一个软件模块之间的链 接, 当这种链接建立之后, 模块之间就可以通过被称之为 Interface“接口 ”的机制来进行通信。在绝大部分情况下, 客户应用程序与组件的通信过程是单向的, 客户创建组件对 象, 然后客户通过接口调用对象所提供的功能, 在适当的时 候再把对象释放掉。在这种交互过程中, 客户总是主动的, 而组件总是处于被动状态, 通过自身暴露给客户的接口监听 客户的请求, 一旦接收到客户的请求便做出反应。这样的接 口称为入接口incoming interface,对于一个全面交互过 程来说, 这样的单向通信往往是不能满足实际的需要, 组件 对象也要主动与客户进行通信, 因此, 与入接口相对应, 对象 也可以提供出接口outgoing interface 也叫回调接口 , 对 象通过这些出接口与客户进行通信。之所以把这些接口称为 出接口, 其原因在于这些接口并不由 COM服务器端的对象 实现, 而是由客户程序来实现, 客户实现这些接口, 并把接口
UML2 对象类图(类图)与对象图
类图是一种静态结构图,它描述的是系统的静态 结构,而不是系统的行为。
类之间的静态联系主要类型有:关联、聚集、组 合、泛化/特化、依赖等
一、对象类图—示例
ATM系统
读卡机
-卡号 接收卡() 弹出卡() 读卡()
ATM屏幕
提示() 接收输入()
帐目
-帐号
-PIN -结余 打开() 取钱() -扣钱() -验钱数()
<<machine-related>> …
Responsibility: Take dirty clothes as input and produce clean clothes as output
1.7 注释
注释给类添加了更多的信息
WashingMachine
brandName modeName serialNumber
1 扣住
1 1 纽扣缝
5. 接口和实现[1]
接口:是一组外部可以访问的操作,用于为对象类或组 件提供服务。接口可作为一种特殊的抽象类,不含属性, 它的操作也没有方法,及没有操作的实现。 表示方式:用类的图标加上构造型<<interface>>,或 用一个小圆表示,接口名标在圆旁边。
<<interface>> 接口名
... checkID(id:Int):Bool checkPassword(pass:string):Bool
...
<<call>>
问题:如果改变这个方法的工作方式或把C++安 全类换成Java安全类,则会影响整个系统。
系统其它类
SecurityImp
潭州工业学院教你理解AutoCAD对象模型
潭州工业学院教你理解AutoCAD对象模型一个对象就是AutoCAD ActiveX界面的一个主要组成块。
每一暴露的对象描绘了AutoCAD的精确部分。
在AutoCAD ActiveX界面中有许多不同类型的对象。
例如图形对象,如线、弧、文本和标注都是对象样式设置,如线型和标注样式均为对象组织结构,如图层、组合和图块也是对象图形显示,如视图和视口都是对象甚至图形和AutoCAD 应用程序本身也是对象对象是通过分层方式来组织的,应用程序对象为根对象。
这种分层结构的视图被归结为对象模型。
对象模型提供了你访问下一层对象的途径。
本节内容:简要介绍Application(应用程序)对象简要介绍Document(文档)对象简要介绍Collection(集合)对象简要介绍图形和非图形对象简要介绍Preferences(参数选择)、Plot(打印出图)和Utility(实用工具)对象简要介绍Application(应用程序)对象应用程序对象是AutoCAD ActiveX自动操作对象模型的根对象。
通过应用程序对象,你可访问其它的对象,或指派对象的属性和方法。
例如,应用程序对象具有Preferences(参数选择)属性,它返回Preferences(参数选择)对象。
该对象提供访问在选项对话框中设定的注册信息。
(图形信息设定包含在DatabasePreferences对象,它在后面会介绍到。
) 应用程序对象的其它属性提供你访问应用程序指定数据,如应用程序的名称和版本、还有AutoCAD的窗口大小、位置和可见性等。
应用程序对象的方法执行应用程序指定的动作,如列出、装载、卸载ADS和ARX应用程序,还有退出AutoCAD。
应用程序对象也提供通过Documents(文档)集合链接到AutoCAD 图形、通过MenuBar和MenuGroups集合链接到AutoCAD菜单和工具栏,还有通过称为VBE属性链接到VBA IDE。
第五章 UM对象图和类图
① 关联名
关联名
★如果关联关系已经清楚,就无需关联名
② 关联的角色
关联的角色
★ 在关联的每一个端点上有一个角色。每一个角色具
有一个名字,用来描述其类被其他的类看作是什么: 把它称为角色名,如果类名与角色名相同,则不
标出角色名。类关系通过添加角色来进一步丰 富。在类图中使用角色可以帮助读者理解第一 个类对于第二个类的作用。
1.3 接口
• 在没有给出对象的实现和状态的情况下对对象行为 的描述。 • 包含操作但不包含属性。 • 没有对外界可见的关联。 • 一个类可以实现一个或多个接口。
1.3 接口
• 接口类:
1.4 类之间的关系
• • • • • 1 2 3 4 5 关联关系 聚合和组合关系 泛化关系 依赖关系 实现关系
案例分析
• 创建一个类图。下面给出创建类图所需的信息。 • 学生(student)可以是在校生(undergraduate)或者 毕业生(graduate)。 • 在校生可以是助教(tutor)。 • 一名助教指导一名学生。 • 教师和教授属于不同级别的教员。 • 一名教师助理可以协助一名教师和一名教授,一名教师只 能有一名教师助理,一名教授可以有5名教师助理。 • 教师助理是毕业生。
(2)聚合 聚集和组合
• 聚合(aggregation): 表示类之间一种松散的整体与部分的组成关 系,是一种特殊的关联。表示“整体/部分”的关联关系。“has a ”,表示聚合中的每一个部分可以属于其它整体。 • 被表示为在整体的一端用一个空心菱形修饰的简单关联
聚合
组合
• 组合(composition): 表示类之间一种紧密的整体与部分的组成 关系,也是一种特殊的关联。表示组合中的每一个部分只能属 于一个整体 • 组合确实只是一种特殊的关联,用整体端有实心菱形箭头的简单 关联修饰它。
理解对象模型图
课程预览
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、特点 不可创建,不可实例化 把一些类共同的属性和方法 提取出来,用其它类来继承。 二维带阴影的矩形
为子类定义通用的接口
返回一个值
返回一个接口
理解对象模型图(ReadingOMDS)
理解对象模型图(ReadingOMDS)引⾔这篇⽂章⼤部分内容是翻译的帮助资料⾥的东西。
学习技术,英语是个好⼯具。
⼀直把英语的地位看得和技术⼀样重,也会强迫⾃⼰看英语版的技术书籍(都是PDF版的,外国的书买不起)、资料。
但⼀开始,这完全是⼀件痛苦万分的事,⼤量的专业词汇和概率总是让我摸不着头脑。
后来,慢慢积累词汇查找概念对英语这块不恐惧了,趁现在还处在记忆⼒黄⾦期希望能多补⼀补专业英语。
这需要长期积累与坚持。
这篇⽂章不光是翻译的内容,还有平常积累的东西和思考总结的东西。
愿有个好的开始……(单是翻译过来的话,⽂章不好理解,有些地⽅稍微改变了⼀下表达⽅式,但内容没变,看内容的时候请记住和对⽐符号。
)资料来源开发帮助:ArcObjects help for .NET(2010)/Learning ArcObjects/Getting started with ArcObjects .NET/Reading OMDS内容对象模型图解采⽤的是UML(统⼀建模语⾔)。
对象模型图是对对象浏览器的补充,它列出了开发环境中没有的类与成员、类与类之间的关系和结构,有了对象模型图能更好的理解AO的组件。
(获得OMDS的途径有两种⼀种是通过开发帮助,找到相应命名空间,在它的内容节点找到Diagrams,另⼀种是在安装路径下“……ArcGIS/DeverloperKit10.0/ Diagrams”)。
1.“类”的类型上图有三种类型的框分别代表是AbstractClass、CoClass、Class三种类型的类。
(⼀定要记住这三种框代表的类)AbstractClass(抽象类):抽象类,不能⽤它创建对象(只能通过⼦类继承)。
⽐如,⼀个“Line”是“primaryLine”和“secondary Line”的抽象类。
抽象类对于想要创造出⾃⼰的⼦类是⾮常重要的(它显⽰了在继承中哪些是特定的接⼝,哪些是可选择的接⼝(optional Interface))。
对对象模型的通俗理解PPT课件
我的一个朋友结了婚。
具体事物
对象
我的一个朋友,他未婚妻…
事物类型 属性
类 属性
小伙,姑娘,玫瑰,月老… 年龄,体格,性情…
能力
方法
牵线,追求,结婚…
位置
部署
软件园,情侣路…
整-部关系
聚集关系 恋人-小伙,恋人-姑娘
笼-具关系
继承关系 人-小伙,人-姑娘
伙伴关系
关联关系 小伙-姑娘,小伙-玫瑰
成事过程
.
14
B.每个事物看上去是什么样的?
每个事物看上去都有自己的属性,在每 个属性上都有一个特征值。
如上例中:
月老,有属性:年纪,特征值:较大; 小伙,有属性:体格,特征值:强壮; 姑娘,有属性:性情,特征值:温柔; 恋人,有属性:关系,特征值:黏糊; 玫瑰花,有属性:颜色,特征值:火红。
F.这些事物是怎么成事的?
每个事物都会尽量利用伙伴的能力; 整体事物的能力依靠部分事物的能力; 笼统事物的属性和能力就是具体事物的
属性和能力;具体事物除了有笼统事物 的属性和能力外,还可以有自己特殊的。 事物分工协作,互通信息,共同完成整 体的目标。
.
19
俗语对术语的映射
俗语
术语
例子
出了什么事? 用例
恋人的的儿子考上了大学”;
“干旱了这么久了,请想个法子下场雨吧;”
“上月去北京开会时老王遇到老同学老张;”
“一到月底就手头急,钱都跑哪里去了?”
“看大家忙忙碌碌的,可活不见长,到底咋 回事?”
请每个听众回去模仿本教程选择以上其中一个 故事进行演绎,作为对本人倾情演出的回报。
.
16
D.这些事物都呆在什么地方?
每个事物都会有它合理的或者必须的空 间位置和逻辑位置。尤其当这些位置对 事物的行为造成重要影响的时候,表明 他们的位置是极其重要的。
Office编程技术——理解对象模型
对象是Microsoft Office 97应用程序的基本构成组块;几乎你在VisualBasic中所作的每一件事情都包括了对对象的操作。
在Office中,每个内容和功能单元,——每个工作簿(Workbook),工作表(worksheet),文档(Document),文本范围,幻灯等等——它们都是对象,你可以在Visual Basic中进行可编程地控制。
当你理解了对象是如何工作之后,你就会准备在Office中进行自动的工作了。
对象模型概览在你通过编程对应用程序中的内容和功能进行访问之前,很重要的一点就是需要了解应用程序中的内容和功能是如何被分割成分离的对象的,以及这些对象是如何被组织安排在一个继承的模型里的。
什么是对象和对象模型一个应用程序包含两件事情:内容和功能。
内容依赖于应用程序所包含的文档,以及包括在文档中的字词,数字,或是图形;它还依赖于有关应用程序中的独立要素的属性信息,例如说窗口的大小,图形的颜色,或是一个字词的字体大小等等。
功能依赖于你使用应用程序中的内容来进行工作的所有方法——例如,打开,关闭,添加,删除,拷贝,粘贴,编辑,或是格式化应用程序中的要素。
应用程序中的内容和功能被分割为有关联的内容和功能的不连续的单元,叫做对象(Object)。
你已经对一些这样的对象非常熟悉了,例如说一些用户界面的要素:Microsoft Excel工作簿,工作表,以及表格表元范围; Word 的文档和小节;以及 PowerPoint 的介绍和幻灯片等等。
在一个应用程序中,最高级别的对象通常是 Application 对象,它就是应用程序本身。
例如,在 Microsoft Excel 对象模型中的Application 对象就是 Microsoft Excel 本身。
在 Application 对象中包含了一些其它的对象,这些对象只有在 Application 对象存在的时候(也就是说,当应用程序运行的时候)你才可以访问到它们。
第5章 对象类图与对象图课件
注册 选课
Home
图5.2 类的图形表示
5.1.2 属性
类的属性(Attribute)是类的命名的性质,属性在类图标的属性分隔 框中用文字串说明,如图5.3所示。
属性有在本类中唯一的属性名或标识符。
冒号“:”后跟属性值的数据类型。
属性名后跟的方括号中的内容是可选项目。
多重性(Multiplicity)用多值表达式表示,其值是该类的每个实例的 属性值的个数。
Home
图5.11 N元关联示例
5.2.3 关联的约束
关联可以加上一些约束,以规定关联的含义。 约束的字符串括在花括号{}内。 UML定义了一些约束可以施加在目标关联端上,如“implicit”、
“ordered”、“changeable”、“addonly ”、“xor”等。 例:具有xor约束的关联,如图5.12所示。约束xor 代表一组关联的
5.4.3 重载与多态性
泛化涉及面向对象技术的多态性、重载、多继承等概念,这在建立 泛化联系时需特别注意。
重载是实现多态性的方法,它修改继承来的属性和操作的内容,而 不改变其名字。
例:在图5.17中有表示重载的约束“{overlapping}”,说明子类型 “风动交通工具”、“机动交通工具”、“陆上交通工具”、“ 水上交通工具”虽然继承了超类“交通工具”的属性和操作,但 是对于某些具有多态性的属性和操作,各个子类型的对象都有自 己不同的含义和实现,而属性和操作的名字则是一样的。
类名可以是简单名,也可以是路径名。
属性框中包含类的属性。属性是类的命名 的性质,它描述类性质的实例所能具有的 值。
操作框中包含类的操作。操作实现类的服 务功能,它可以被本类的对象请求执行, 从而发生某种行为。
怎样看模型的工作图纸
第一节怎样看模型的工作图纸我们在制作各种航海模型以前,首先接触到的就是一份模型工作图纸,它不仅告诉我们模型的种类、名称、外形和尺寸,同时还可以使我们了解模型的各个零部件的情况。
有些模型的图纸还简要地介绍模型的内部结构、动力装置、部件装配、控制系统和制作方法等。
因此,认真地看图纸,搞清各种技术要求,对准备材料和工具、考虑制作方法等都是十分重要的。
下面重点介绍有关舰船模型的识图常识。
为了看懂模型工作图纸,首先要熟悉图中各种线条的意义。
图中常见的有粗实线、细实线、虚线、点划线和折断线等。
粗实线一般表示物体外表一切可见的轮廓线。
虚线往往表示被遮挡的轮廓线。
细实线用来表示尺寸线、尺寸界线、引线和剖面线。
点划线常表示物体的中心线、位置线和轴线等。
断开的地方用折断线表示。
物体剖视的地方要用倾斜的剖面线、中心线、位置线和轴线等。
断开的地方用折断线表示。
物体剖视的地方要用倾斜的剖面线。
另外,在图纸上还常常见到M、Φ和R等字母符号。
M代表比例尺。
如M1:1,表示图中物体的大小与实物一样大。
M1:2,表示图中物体的大小为实物的1/2。
M1:100,表示图中物体的大小为实物的l/100。
不过,要注意区别图纸与实际舰船的比例及图纸与模型尺寸的比例。
Φ是代表圆形物体或圆孔直径的符号,R代表圆形物体或圆孔半径的符号。
这些符号都写在数字的前面。
长度单位一般用毫米(mm)。
(图96)舰船模型的工作图纸,一般包括总布置图、船体型线图和零件图。
有的图纸还给出部件的装配图和动力装置安装图等。
简易和初级的舰船模型图纸,除总布置图和零件图外,也要有船体简单的型线图或每块横隔板的外形图,这对初学制作是很有用的。
下面就分别讲一讲:总布置图总布置图又称总图。
主要根据投影的原理,在船舶的俯视图、侧视图、前视和后视图上表示出全船各部分的形状与布置。
它可以便我们了解全船概貌,船体、上层建筑等较大零部件的外形、尺寸和位置等。
看图时,应将总图中的侧视图、俯视图(有的还有前视图和后视图)对照来看。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、对象模型图阅读
1. 类和对象
在UML 图中有三种类型的类:抽象类(abstract class)、可创建类 (createable class)与可实例化类(instantiable class)。 抽象类不能用以创建新对象,但可以用来指定子类。举个例子,“鸟”是 “鸡”的抽象类。
可创建类指的是那些能够直接使用开发环境中的对象定义语法来创建对象。 比如在Visual Basic 中是这样书写:Dim As New <object> 或者CreateObject <object>。 可实例化类不能够直接创建新对象,但是这种类的对象能够作为其它对象的 属性被创建或是从其它类的方法中创建。------比较难理解。
首先来看看OMD能帮我们做什么? 1. 该类支持哪些接口; 2. 完成任务需要哪些对象; 3. 如何使用该类的对象; 4. 是否可以直接实例化类; 5. 接口有哪些方法和属性; 6. 是否有其它类也支持该接口; 7. 对象间的关系
这些符号是基于UML 画图工具创建的,UML 符号是面向对象分析和设计的工业图样标准。 对象模型图中提供的信息非常多,是对象浏览器中信息的重要补充。C#,或者其它的开发环境, 都会列出所有的类和成员,但不会指明这些类之间的关系。所以,对象模型图是非常有利于读 者对ArcInfo 组件的理解的!
IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactoryClass(); IWorkspace pWorkspace = pWorkspaceFactory.OpenFrom, 0);
2、接口查找
快速得知ArcGIS Engine接口所属命名空间的几种方式
1、对象模型图阅读
6、OMD中的符号:
一个三角形符号 表示继承 形的黑色小块 表示组成 线前头带个箭头 表示用来创 建 * 表示对应关系1:N 一条直表示 联合
1、对象模型图阅读
6、OMD中的符号:
类的类别:
抽象类:不能创建或实例化, 从来没有一个抽象类的实例 用 于定义子类的公共接口,子类 继承其定义的接口。OMD符号 为:二维的内部有阴影的矩形。 例化类:不能创建,从别的 对象获得实例。 OMD符号为: 3D矩形内部没有阴影 可创建的类:用New关键字 创建对象或者从别的对象获得 运行实例。OMD符号为:带阴 影的3D矩形符号。
1.Visual Stduio 2005中提供的智能感知(鼠标悬浮在接口上就能看到)或“转 到定义”(理论上提供F12快捷)
2.使用帮助文档的索引 ArcGIS的帮助文档可以说是非常强悍的,如下图所示:
2、接口查找
3.使用AE自带的工具:【Library Locator】 这个工具的使用比较简单(如果用.NET的话,勾选窗体下部的复选框),该工具
指针通过一定的手段传给 服务器, 以后 服务器端就利用此接 口指针与客户进行通信, 服务器端调用此接口的成员函数, 即调用了客户自定义的函数, 这时组件对象变成了客户端的 客户, 可见在 com规范中, com组件对象提供服务客户调用 服务, 这种对象与客户之间的关系是相对的。
谢谢观赏
在这张图上,一个业主能有拥有一块或多块宗地;同样地,一块宗地可以被一 个或多个业主所共有。 多重性关联就是限制对象类与其它对象关联的数目关系。以下是用于多重性关 联的符号: 1 —— 一个并且只有一个,这种多样性是可选的;如果不标明,则默认为“1” 0..1 —— 零个或一个 M..N —— 从M 到N(正整数) *或者0… * —— 从零到任意正整数 1… * —— 从一到任意正整数
1、对象模型图阅读
6、OMD中的符号:
属性和方法: 属性:哑铃状的图标, Read(左侧的哑铃)和 write(右侧的哑铃) 方法:指向左侧的箭头 接口:棒棒糖类型的图 标 图表之间的连接:虫洞
1、对象模型图阅读
7、入接口和出接口(Inbound interface,Outbound interface)
鸟 Abstract
鸟巢 CoClass
蛋 Class
鸡 CoClass
2
翅膀 Class
* 羽毛
Class
1、对象模型图阅读
2. 关联 在抽象类、可创建类和可实例化类之间,有几种存在的关联(或称关系)。 联系(association)便描述了类之间的关联。在两端的类中可以定义多重性( Multiplicity)关联。
1、对象模型图阅读
个人感觉在OMD图中比较难理解的就是可实例化类CLASS。 从下面的例子去理解它:
ArcGIS Engine中 workSpace 就是一个可实例化类, WorkSpace不能用new创建,但可以通过 WorkSpaceFarctory.Openfromfile()方法来创建.如下:
1、对象模型图阅读
5、组成(Composition)是一种更为强壮的聚合方式,此种方式下,“ 整体”对象控制着“部分”对象的生存时间。
一个pole 包含一个或多个crossarm。在这个图中当pole 被移除后, crossarm 就不能再使用了。因为pole 控制着crossarm 的生存时间。
如何阅读对象模型图
1、对象模型图阅读
几个名词概念: UML:Unified Modeling Language 统一建模语言,是用来对软件密集 系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行 说明、可视化、和编制文档的一种标准语言。 OMD:Object model diagrams 对象模型图表。
IDrive IRace
RaceCar
Fuel
Accelerate Brake
LapTime PitStop
接口跳转时要特别注意: 同一个Com类或则向上(父类)可以实现接口跳转 向下或同级不可以实现接口跳转
COM所建立的是一个软件模块与另一个软件模块之间的链 接, 当这种链接建立之后, 模块之间就可以通过被称之为 Interface“接口 ”的机制来进行通信。在绝大部分情况下, 客户应用程序与组件的通信过程是单向的, 客户创建组件对 象, 然后客户通过接口调用对象所提供的功能, 在适当的时 候再把对象释放掉。在这种交互过程中, 客户总是主动的, 而组件总是处于被动状态, 通过自身暴露给客户的接口监听 客户的请求, 一旦接收到客户的请求便做出反应。这样的接 口称为入接口incoming interface,对于一个全面交互过 程来说, 这样的单向通信往往是不能满足实际的需要, 组件 对象也要主动与客户进行通信, 因此, 与入接口相对应, 对象 也可以提供出接口outgoing interface 也叫回调接口 , 对 象通过这些出接口与客户进行通信。之所以把这些接口称为 出接口, 其原因在于这些接口并不由 COM服务器端的对象 实现, 而是由客户程序来实现, 客户实现这些接口, 并把接口
能够粘贴命名空间和ProgID。
4.OMD OMD文档结构图,理理接口之间的关系,能很大的帮助自己。
3、接口跳转
接口跳转又叫接口查询
Dim pCar as IDrive Set pCar = new RaceCar pCar.Accelerate
Dim pRace as IRace Set pRace = pCar pRace .PitStop pCar .Accelerate