UML包图中包引入和包合并怎么用

技术UML包图中包引入和包合并怎么用这篇文章主要介绍了UML包图中包引入和包合并怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。UML包图中的包引入和

本文主要介绍如何在UML包图中使用包介绍和包组合,具有一定的参考价值。有兴趣的朋友可以参考一下。希望大家看完这篇文章后收获多多。让边肖带你去了解一下。

UML包图中的包引入和包合并

1包引入

Packageimport(参见USS的7.3.39节)是一种允许来自另一个命名空间的元素被非限定名称访问的关系。如果我们有一个包A和一个包B,如果包A没有引入包B,那么包A在访问包B时必须使用限定名,比如B:Integer。当包A引入包B时,可以用非限定名访问。此时A可以用Integer直接访问包B中的Integer。对于包的介绍,就像C语言中的usingnamespace关键字和Java语言中的import关键字一样。

图1是在UML包图中引入到UML规范中的包的语法定义。从图中,您可以看到它包含一个导入命名空间和一个导入包,这意味着将导入包导入到导入命名空间中。此外,我们可以看到PackageImport是直接关系。还应注意,PackageImport包含一个可见性属性,用于指示包介绍关系的可见性。UML规范定义了这个属性值可以是公共的,也可以是私有的。这意味着如果包的可见性是公共的,那么引入的包可以被命名空间之外的其他元素访问;如果包的导入可见性是私有的,则导入的包只能由命名空间中的元素访问,但命名空间之外的元素不能。这和我们语言中的公私含义是一样的。

UML包图中包引入和包合并怎么用

图1 UML规范中由包引入的语法

图2是包介绍的一个例子,也说明了包介绍关系在UML中的表示。可以看出,包引入关系和依赖关系的表示方法是相同的。在包引入的表示方法中,有箭头端的包被引入到没有箭头端的包中,这可以从图1中的语法定义看出,因为importedPackage是目标。您可能会问,在图1中,只有包引入被定义为将包引入名称空间,但是在图2中,包被引入包中。是这样吗?还记得《UML包图中的包和命名空间》中提到的UML中包的语法定义吗?因为包是从命令空间继承的,也就是说,包是一个命名空间!

UML包图中包引入和包合并怎么用

图2包装介绍示例

前面提到的包引入的可见性分为公共的和私有的,它们在UML中通过立体类型来区分。公共对应于导入模式,而私有对应于访问模式,如图2所示。从图2中,我们可以看到ShoppingCart包引入了辅助包和类型包。引入后,引入的两个包中的元素可以通过ShoppingCart包中的非限定名称直接访问。另外,Types包也可以被ShoppingCart包以外的元素访问,因为它引入的关系的可见性是公开的,这意味着在将ShoppingCart包引入WebShop包之后,Types包中的元素也可以被非限定名称直接访问。因为引入到ShoppingCart包中的辅助包的可见性是私有的,虽然WebShop引入了ShoppingCart包,但是不能通过非限定名称访问辅助包。当然,网络商店包仍然使用辅助:3360 XYZ的限定名来访问辅助包中的元素。我们还可以理解,导入关系是可传递的,但访问关系不是。

2包合并

UML包图中的Packagemerge(参见USS的7.3.40节)定义了一个包的内容如何被另一个包扩展的关系。包合并关系意味着合并两个包的内容以获得一个新的合并包。当然,这种合并关系也意味着合并包的扩展。图3列出了UML规范中包合并关系的语法。

UML包图中包引入和包合并怎么用

图3 3UML规范中可打包元素的语法

图4是使用包合并的例子。UML图中包合并关系的表示与依赖关系的表示相同。从图3中的语法可以看出,箭头(目标)指向的包是合并的包。在图4中,我们可以看到三个包,即合并包、合并包和导入包。我们还可以看到合并包合并了合并包,导入包引入了合并包。三

个包中都有一个A类,这里的A类只是为了说明方便,其实,包中可以有其它的元素,那三个包中的A类在合并前后有什么关系呢?

UML包图中包引入和包合并怎么用

图4包合并的一个例子

为了方便理解这一问题,请看图5。UML包图的包合并中的加号表示的是合并这个操作,等号的左边表示合并之前,而等号的右边表示合并之后。在合并之前,我们可以看出Merged::A和Merging::A分别是一个扇形,但合并之后Merging::A就变成了一个圆,因为Merged包被合并进了Merging包,这个合并操作是站在Merging包的角度来看的。从Merged包的角度来看,不论是合并前或是后,都是一个扇形,这还是比较好理解的,因为它是独立的,并没有合并其它的包。对于Merging包我们还可以这样理解,在合并之前,无论是从包里头看还是从包外头看都是一个扇形。但在合并之后,从里面看来A还是一个扇形,但从外面来看却是一个圆。

UML包图中包引入和包合并怎么用

图5

有了上面对于包合并的理解后,我们就不难理解Importing包中的A了,显然它是一个圆,是从Merging包的外部来看引入的A。

感谢你能够认真阅读完这篇文章,希望小编分享的“UML包图中包引入和包合并怎么用”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/133533.html

(0)

相关推荐

  • 三点水一个日念什么,左边三点水右边一个天念什么

    技术三点水一个日念什么,左边三点水右边一个天念什么左边三点水右边一个天是【沃】【拼 音】三点水一个日念什么: wò
    【部 首】: 氵
    【笔 画】: 7
    【五 笔】: ITDY
    【基本释义】
    1、土地肥。
    2、灌溉,浇

    生活 2021年10月25日
  • ADO.NET连接数据库使用是怎样的

    技术ADO.NET连接数据库使用是怎样的本篇文章为大家展示了ADO.NET连接数据库使用是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。如果我们利用Command 对象所执

    攻略 2021年12月1日
  • oracle删除所有dblink(oracle dblink删除报错)

    技术Oracle中删除database link时报错怎么办本篇内容主要讲解“Oracle中删除database link时报错怎么办”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家

    攻略 2021年12月22日
  • oracle rac 随笔

    技术oracle rac 随笔 oracle rac 随笔查看gi时区[+ASM1]@ht01[/u01/app/grid/crs/install]$cat s_crsconfig_ht01_env.t

    礼包 2021年12月17日
  • 气怎么写,写页岩气作文怎么写600

    技术气怎么写,写页岩气作文怎么写600地理位置:山东省地处中国东部气怎么写、黄河下游,是中国主要沿海省市之一。位于北半球中纬度地带。陆地南北最长约420公里,东西最宽约700余公里,陆地总面积15。67万平方公里,约占全

    生活 2021年10月21日
  • Java中混淆技术有几种

    技术Java中混淆技术有几种这篇文章给大家分享的是有关Java中混淆技术有几种的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。到目前为止,对于Java程序的保护,混淆技术还是最基本的保护方法。J

    攻略 2021年12月8日