zoukankan      html  css  js  c++  java
  • ArcGIS Engine开发前基础知识(3)

    对象模型图

     


    一、对象模型图中的类与接口

         ArcGIS Engine 提供大量的对象,这些对象之间存在各种各样的关系,如继承、组合、关联等。对象模型图(Object model diagram,ODM)是以统一建模语言UML为基础,用来表现对象之间关系的类图,它是了解和熟悉ArcGIS Engine 体系架构的基础。熟练掌握OMD图可以帮助开发人员快速了解类之间的相互关系,类的接口转换,选择正确的接口,获取所需的属性、方法等;熟练阅读OMD图不但能够基于ArcGIS Engine的GIS软件可发过程中获得非常大的帮助,也是熟练掌握ARCGIS Engine开发技能的必备要求。

    从图中可以看出,ArcGIS Engine 包含三种类型的类:AbstractClass类、CoClass类、Class类,在UML中采用不同的样式填充。

    1. AbstractClass类

    AbstractClass即抽象类。该类不能被实例化,也就是说不能用new关键字去生成一个该类的对象。根据面向对象思想的概念,不同的类可以继承自同一个抽象类,但是内部的实现可能是不一样的。例如:

    IGeometry point=new Point();
     IGeometry polygon=new Polygon();
     IEnvelop envelope=point.Envelope; 
    envelope=polygon.Envelope; 

         上面的例子中,Point类都继承于Geometry抽象类,都实现了Geometry抽象类的Envelope属性,但其中的内部细节的实现是不同的,每次得到的envelope变量也是不同的。

    2. CoClass类

    CoClass类即可创建类。该类可以通过new关键字直接实例化对象,它的实例对象不依赖其他对象的存在而存在,其生存周期也不由其他的对象管理。如“QueryFilter是一个组件类,可以用new关键字创建一个pQueryFilter对象”。例如

    IQueryFilter pQueryFilter=new QueryFilterClass();

    3. Class类

    Class类,即可实例化类。该类不能直接使用new关键字创建对象,但是可以借助其他对象类来创建该类的实例,例如Workspace类可以通过WorkspaceFactory类的OpenFromFile方法来创建。代码如下:

    IWorkspaceFactory pWSFactory=new ShapfileWorkspaceFactoryClass();

    IWorkspace pWorkspace=pWSFactory.OpenFromFile(filepath,0);

    4. 类的关系

    1. 继承关系

    继承是面向对象编程的重点之一,只能通过派生子类的方法来实现自己。子类继承父类的全部非私有属性和方法。类之间的继承可以看成是类功能的扩展,即子类在继承父亲属性和方法的基础上,还可增加自己特有的属性和方法。

    • 组合关系

    组合关系是指其中一个类对象的组成部分,由组成对象控制被组成对象的整个生命周期。

    • 关联关系

    关联关系是指可以从一个类对象是另一个对象的组成部分,他是一种松散的关系,关联关系是具有方向的,若只存在一个方向,则为单向关联。

    • 依赖关系

    依赖关系表示一个对象具有生产另外一个对象的方法。在OMD图中一般用虚线表示。

     

  • 相关阅读:
    重温Delphi之:面向对象
    Delphi2007卸载后无法再安装
    ERP开源框架 + 二次开发平台 介绍
    CodeGear RAD 2007 SP4 最新下载及破解
    Delphi XE中类成员的访问权限(新增了strict private和strict protected,还有automated)
    Delphi学习技巧
    Codeforce 101B. Buses(线段树or树状数组+离散化)
    Codeforce 101B. Buses(线段树or树状数组+离散化)
    codeforce -39E-What Has Dirichlet Got to Do with That?(博弈+dfs)
    codeforce -39E-What Has Dirichlet Got to Do with That?(博弈+dfs)
  • 原文地址:https://www.cnblogs.com/dongteng/p/5864337.html
Copyright © 2011-2022 走看看