zoukankan      html  css  js  c++  java
  • UML关系

    UML里面主要有4种关系,下面会一一进行介绍。

    1、泛化

    generalization,其实就是我们比较熟悉的继承关系。

    上图中,申购交易属于一般类(generalized class),另外2个属于特殊类(specialized class)。

    特殊类继承(inheritance)一般类里的通用属性与操作,可以直接重用(reuse)一般类里的属性、操作和方法。

    一般来说,通过检查两项条件来判断是否采用泛化关系,如下:

    (1)特殊对象必须“是一种”(a kind of)一般对象

    (2)多种特殊对象里,有部分通用的属性与操作,也有部分独有的属性与操作

    分析:

    (1)单笔申购是一种申购交易,定期定额申购也是一种申购交易(符合上述条件1)

    (2)单笔申购与定期定额申购里,都需要记录申购日期、信托金额、扣款账号、凭证号码这四项属性,以及必须执行计算手续费这项操作,这些属性与操作属于通用部分。看起来单笔申购确实比较单纯,没有特殊的属性和操作。不过,定期定额申购就不是这么单纯了,它多了扣款日期、投资金额、扣款情况这三项属性,以及多了一个约定异动的操作(符合上述条件2)

    2、关联

    association,是类之间最常见的关系。

    一般来说,通过检查两项条件来判断是否采用关联关系,如下:

    (1) 在企业领域的专业概念里,两种对象之间有一种固定不变且需要保存的静态关系

    (2)在信息化时,系统会用到这些静态关系,而且必须将它们存到数据库

    分析:

    (1)发生任何一笔申购交易,都必须确实记录在某一基金账户底下。申购交易与基金账户之间的关系固定不变,且在该基金账户被结清之前,两者之间的关系需要被永久保存下来(符合上述条件1)

    (2)由于申购交易与基金账户之间的关系需要被保存下来,所以会被存到数据库里(符合上述条件2)

    (3)每一个基金账户底下,可以有零到多笔的申购交易。所以,在申购交易端标示“*”,代表一个基金账户对象可以链接零到多个申购交易对象

    (4)每一笔申购交易,只能登记在某一个基金账户底下。所以,在基金账户端标示“1”,代表一个申购交易对象只能链接1个基金账户对象

    3、聚合

    aggregation,是一种特殊的关联关系,既有关联关系的特质,还独有“整体 —— 部分(whole —— part)”的特质。

    一般来说,通过检查三项条件来判断是否采用聚合关系,如下:

    (1)在企业领域的专业概念里,两种对象之间有一种固定不变且需要保存的静态关系(继承自关联关系的条件)

    (2)在信息化时,系统会用到这些静态关系,而且必须将它们存到数据库(继承自关联关系的条件)

    (3)在企业领域的专业概念里,两种对象之间有whole —— part的静态关系(聚合关系独有的条件)

    上面每一个都是基金看台,每个看台可以设定多档自选基金,这样客户就可以同时观看比较多档基金的报酬率。现在在三个地方都买了基金,那么我们就有了如上的三个基金看台,就可以同时看着三个基金账户里面的基金资料。又因为我们在不同的地方都买了安本亚太基金,所以在三个看台都可以看到这个信息,这也就说明了一个part对象可以链接多个whole对象。

    分析:

    (1)基金看台与自选基金之间的关系固定不变,且在该基金看台被整个删除或者某自选基金从该基金看台除名之前,两者之间的关系需要被永久保存下来(符合上述条件1)

    (2)由于基金看台与自选基金之间的关系需要被保存下来,所以会被存到数据库里(符合上述条件2)

    (3)基金看台聚集了多档自选基金。自选基金是基金看台里很重要的一项元素,如果没有自选基金,那么基金看台几乎也就失去了存在价值。所以, 两者之间有whole —— part的特质,基金看台是whole,自选基金是part(符合上述条件3)

    (4)每个基金看台底下,可以有零到多档的自选基金。所以,在自选基金端标示“*”,代表一个基金看台对象可以链接零到多个自选基金对象

    (5)每一档自选基金,可以设定在多个基金看台底下。所以,在基金看台端标示“*”,代表一个自选基金对象可以链接零到多个基金看台对象

    4、组合

    composition,是一种特殊的聚合关系,所以继承了关联关系和聚合关系的“整体 —— 部分(whole —— part)”特质,还独有全然拥有part对象的特质。

    一般来说,通过检查四项条件来判断是否采用组合关系,如下:

    (1)在企业领域的专业概念里,两种对象之间有一种固定不变且需要保存的静态关系(继承自关联关系的条件)

    (2)在信息化时,系统会用到这些静态关系,而且必须将它们存到数据库(继承自关联关系的条件)

    (3)在企业领域的专业概念里,两种对象之间有whole —— part的静态关系(继承自聚合关系的条件)

    (4)part对象只能链接一个whole对象,且whole对象被注销时,part对象必须一块被注销(组合关系独有的条件)

    分析:

    (1)定期定额申购与单期交易之间的关系固定不变且需要被永久保存下来(符合上述条件1)

    (2)由于定期定额申购与单期交易之间的关系需要被保存下来,所以会被存到数据库里(符合上述条件2)

    (3)客户约定了定期定额申购后,每个月会依照约定自动生成一笔小额的申购交易,所有的单期交易都归属于同一个定期定额申购底下。两者之间有着whole —— part的特质,定期定额申购是whole,单期交易是part(符合上述条件3)

    (4)每一个单期交易对象只能链接一个定期定额申购对象,且定期定额申购对象被注销时,单期交易对象必须一块被注销(符合上述条件4)

    (5)每个定期定额申购底下,可以有零到多个的单期交易。所以,在单期交易端标示“*”,代表一个定期定额申购对象可以链接零到多个单期交易对象

    (6)每一笔单期交易,只能隶属于某一个定期定额申购底下。所以,在定期定额申购端标示“1”,代表一个单期交易对象只能链接一个定期定额申购对象

    最后,让我们以一个整体的图来更好的理解:

  • 相关阅读:
    C++虚函数表解析(转)
    学习网址
    css 段落文字换行问题
    移动端fixed兼容问题
    半数集1
    汇编寄存器
    设计模式概述
    Vector用法介绍
    汇编PC硬件基本特征
    android 反编译总结
  • 原文地址:https://www.cnblogs.com/abc-begin/p/7748163.html
Copyright © 2011-2022 走看看