《如何阅读对象模型图上课讲义.ppt》由会员分享,可在线阅读,更多相关《如何阅读对象模型图上课讲义.ppt(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如何阅读对象模型图1 1、对象模型图阅读、对象模型图阅读 n几个名词概念几个名词概念:UMLUML:Unified Modeling Language Unified Modeling Language 统一建模语言,是用来对软件密集系统一建模语言,是用来对软件密集系统进行可视化建模的一种语言。统进行可视化建模的一种语言。UMLUML为面向对象开发系统的产品进行说明、为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。可视化、和编制文档的一种标准语言。OMDOMD:Object model diagrams Object model diagrams 对象模型图表。对象模型图表
2、。首先来看看首先来看看OMDOMD能帮我们做什么能帮我们做什么?1 1 该类支持哪些接口;该类支持哪些接口;2 2 完成任务需要哪些对象;完成任务需要哪些对象;3 3 如何使用该类的对象;如何使用该类的对象;4 4 是否可以直接实例化类;是否可以直接实例化类;5 5 接口有哪些方法和属性;接口有哪些方法和属性;6 6 是否有其它类也支持该接口;是否有其它类也支持该接口;7 7 对象间的关系对象间的关系这些符号是基于这些符号是基于UML画图工具创建的,画图工具创建的,UML符号是面向对象分析和设计的工业图样标准。符号是面向对象分析和设计的工业图样标准。对象模型图中提供的信息非常多,是对象浏览器中
3、信息的重要补充。对象模型图中提供的信息非常多,是对象浏览器中信息的重要补充。C#,或者其它的开发环境,或者其它的开发环境,都会列出所有的类和成员,但不会指明这些类之间的关系。所以,对象模型图是非常有利于读都会列出所有的类和成员,但不会指明这些类之间的关系。所以,对象模型图是非常有利于读者对者对ArcInfo组件的理解的!组件的理解的!6、OMD中的符号:中的符号:n一个三角形符号 表示继承n形的黑色小块 表示组成n线前头带个箭头 表示用来创建n*表示对应关系1:Nn一条直线表示 联合1 1、对象模型图阅读、对象模型图阅读 6、OMD中的符号:中的符号:类的类别:类的类别:n抽象类:抽象类:不能
4、创建或实例化,从来没有一个抽象类的实例 用于定义子类的公共接口,子类继承其定义的接口。OMD符号为:二维的内部有阴影的矩形。n例化类:例化类:不能创建,从别的对象获得实例。OMD符号为:3D矩形内部没有阴影n可创建的类:可创建的类:用New关键字创建对象或者从别的对象获得运行实例。OMD符号为:带阴影的3D矩形符号。1 1、对象模型图阅读、对象模型图阅读 6、OMD中的符号:中的符号:属性和方法:属性和方法:n属性:哑铃状的图标,Read(左侧的哑铃)和write(右侧的哑铃)n方法:指向左侧的箭头n接口:棒棒糖类型的图标n图表之间的连接:虫洞1 1、对象模型图阅读、对象模型图阅读 7、入接口
5、和出接口、入接口和出接口(Inboundinterface,Outboundinterface)COM调用既可以是单向的(即客户程序创建组件对象,然后客户程序调用对象所提供的功能,在适当时候再把对象释放掉),通常称为入接口。如果一个COM对象支持一个或多个主动与客户程序进行通信的接口,则这种接口称为出接口,是因为这些接口并不由对象实现,而是由客户程序实现.(类似回调函数,在对象模型图中表现为“事件”)1 1、对象模型图阅读、对象模型图阅读 个人感觉在OMD图中比较难理解的就是可实例化类CLASS。从下面的例子去理解它:ArcGIS Engine中 workSpace 就是一个可实例化类,Wor
6、kSpace不能用new创建,但可以通过WorkSpaceFarctory.Openfromfile()方法来创建.如下:IWorkspaceFactorypWorkspaceFactory=newAccessWorkspaceFactoryClass();IWorkspacepWorkspace=pWorkspaceFactory.OpenFromFile(ConnectionString,0);1 1、对象模型图阅读、对象模型图阅读 2 2、接口查找、接口查找快速得知ArcGIS Engine接口所属命名空间的几种方式 1.VisualStduio2005中提供的智能感知(鼠标悬浮在接口上
7、就能看到)或中提供的智能感知(鼠标悬浮在接口上就能看到)或“转转到定义到定义”(理论上提供(理论上提供F12快捷)快捷)2.使用帮助文档的索引使用帮助文档的索引ArcGIS的帮助文档可以说是非常强悍的,如下图所示:的帮助文档可以说是非常强悍的,如下图所示:3.使用使用AE自带的工具:【自带的工具:【LibraryLocator】这个工具的使用比较简单(如果用这个工具的使用比较简单(如果用.NET的话,勾选窗体下部的复选框),该工具的话,勾选窗体下部的复选框),该工具能够粘贴命名空间和能够粘贴命名空间和ProgID。4.OMDOMD文档结构图,理理接口之间的关系,能很大的帮助自己。文档结构图,理
8、理接口之间的关系,能很大的帮助自己。2 2、接口查找、接口查找3 3、接口跳转、接口跳转接口跳转又叫接口查询FuelAccelerateBrakePitStopLapTimeIDriveIRaceRaceCarDim pCar as IDriveDim pCar as IDriveSet pCar Set pCar new RaceCar new RaceCarpCar.AcceleratepCar.AccelerateDim pRace as IRaceDim pRace as IRaceSet pRace=pCarSet pRace=pCarpRace.PitStoppCar.Accele
9、rate接口跳转时要特别注意:n同一个Com类或则向上(父类)可以实现接口跳转n向下或同级不可以实现接口跳转COM所建立的是一个软件模块与另一个软件模块之间的链接所建立的是一个软件模块与另一个软件模块之间的链接,当这种链接建立之后当这种链接建立之后,模块之间就可以通过被称之为模块之间就可以通过被称之为Interface“接口接口”的机制来进行通信。在绝大部分情况下的机制来进行通信。在绝大部分情况下,客户应用程序与组件的通信过程是单向的客户应用程序与组件的通信过程是单向的,客户创建组件对客户创建组件对象象,然后客户通过接口调用对象所提供的功能然后客户通过接口调用对象所提供的功能,在适当的时候在适
10、当的时候再把对象释放掉。在这种交互过程中再把对象释放掉。在这种交互过程中,客户总是主动的客户总是主动的,而组而组件总是处于被动状态件总是处于被动状态,通过自身暴露给客户的接口监听客户通过自身暴露给客户的接口监听客户的请求的请求,一旦接收到客户的请求便做出反应。这样的接口称一旦接收到客户的请求便做出反应。这样的接口称为入接口为入接口incoming interface,对于一个全面交互过程来,对于一个全面交互过程来说说,这样的单向通信往往是不能满足实际的需要这样的单向通信往往是不能满足实际的需要,组件对象也组件对象也要主动与客户进行通信要主动与客户进行通信,因此因此,与入接口相对应与入接口相对应
11、,对象也可以对象也可以提供出接口提供出接口outgoing interface 也叫回调接口也叫回调接口,对象通过对象通过这些出接口与客户进行通信。之所以把这些接口称为出接口这些出接口与客户进行通信。之所以把这些接口称为出接口,其原因在于这些接口并不由其原因在于这些接口并不由 COM服务器端的对象实现服务器端的对象实现,而是而是由客户程序来实现由客户程序来实现,客户实现这些接口客户实现这些接口,并把接口并把接口指针通过一定的手段传给指针通过一定的手段传给 服务器服务器,以后以后 服务器端就利用此接服务器端就利用此接口指针与客户进行通信口指针与客户进行通信,服务器端调用此接口的成员函数服务器端调用此接口的成员函数,即即调用了客户自定义的函数调用了客户自定义的函数,这时组件对象变成了客户端的客这时组件对象变成了客户端的客户户,可见在可见在 com规范中规范中,com组件对象提供服务客户调用服组件对象提供服务客户调用服务务,这种对象与客户之间的关系是相对的。这种对象与客户之间的关系是相对的。结束语结束语谢谢大家聆听!谢谢大家聆听!17