• UML图示


    来源: http://www.uml.org.cn/oobject/200901041.asp

    近些天学习设计。由于没有具体项目,原有项目也没有什么设计的概念,只是看相关的书籍,所以着实有些抓狂。然最抓狂的是对于UML那些表示法的生疏,虽然看过N+1遍相关的表示,但由于之前看过的设计图稿和自己画的东东本来就不多,因此出来类图,对象图等及其基本的图示可以很清楚的知道谁是怎么表示的外,其他的都只是有些模糊的概念。而有些东西是死记不来的,因此要找个地方记录下。接下来将把UML的一些常用不常用的通用图示记录一下以便查阅。 

    本篇将主要记录UML静态视图中的基本概念以及一些基本图示法,如类,对象,用例等。将这些术语小作分类:结构元素,关系,分组,注释,扩展。

    结构元素

    结构元素包括,类,对象,接口,用例,参与者。

    类图

    类图图示

        类图是UML中最基本的元素了吧?根据OO的思想“天下一切皆对象”,而类是对象的抽象。 
        左侧图示为一个类图。顶端“ClassName”表示类名 
        中间部分为该类的属性,其中分别表示为可访问性,属性名,以及属性的数据类型。 
        第三部分为该类的方法,包括方法的可访问性,方法名,方法的参数以及方法的返回值。 
        需要说明的是:

                “#”表示protected 
                “+”表示Public
                “-”表示private
             “i”表示internal

    对象图图示

    对象图

    右侧图示为一对象图,该对象为类className类的一个实例对象

    该图第一部分说明了该对象为className的一个实例,第二部分指定了该实例的属性值。该图指定的是一个特殊的实例的对象,如果要代表className的所有的对象可省略掉对象名,即为“:ClassName”。

    接口

    类图图示

    左图为一个比较简单的接口事例图示。与类图差不多,该图示分为三部分,第一部分为接口名,为了更明确的标明其“接口”的身份通常以“I”开头。第二部分为属性,第三部分为方法。

    用例与参与者

    下图为一简单的用例视图。小人表示参与者,而椭圆表示的是用例。

    用例与参与者图示

    包图图示

    右侧图示为一包图,该图示为一名称为Utility的工具包。

    包用来组织类,被包含在包里的类一般通过如Utility::StrUtility的形式来反应该类的路径。

    关系

    关系元素包括了聚集,组成,实现,继承,依赖,关联等。

    关联

    关联图示

     关联是类之间的联系,如篮球队员与球队之间的关联(下图所示)。其中,关联两边的"employee"和“employer”标示了两者之间的关系,而数字表示两者的关系的限制,是关联两者之间的多重性。通常有“*”(表示所有,不限),“1”(表示有且仅有一个),“0...”(表示0个或者多个),“0,1”(表示0个或者一个),“n...m”(表示n到m个都可以),“m...*”(表示至少m个)。

    在关联中有一种叫“限定关联”,还有一种谓之自身关联。另外,对象之间的关联就没那么复杂,只是将类的关联实例化而已。

    依赖

    依赖图示

    依赖是表示一个类中使用了另外一个类,最常用的依赖是在类A的方法中使用了类B,那么A依赖B。如上图所示。

    继承

    继承图示

    这里的继承是指子类对父类的关系。理解面向对象的各位对继承应该不陌生。啥也不说,看看图好了。
    继承使用空心箭头表示继承的方向,用实线连接。

    实现

    实现图示

    实现指的是类对接口的实现。接口实现的表示与继承的表示差不多,只是将实线变为了虚线。

    聚集

    聚集图示

    一个类可能有几个部分类聚集在一起而成。如:电脑主机由CPU,主板,光驱....等组成。类与类之间是“整体-部分”的关系。

    组合

    组成图示

    组成是强类型的聚集,每个部分体只能属于一个整体。如桌子由桌腿和桌面组成。

  • 相关阅读:
    十六.jQuery源码解析之Sizzle设计思路.htm
    关于微信浏览不能URL传参,URL中的问号被删除
    websocket 通信协议
    java_httpservice
    Socket.Io 做个标记 下来了解下
    通过netty实现服务端与客户端的长连接通讯,及心跳检测。
    NETTY 编码器介绍
    Netty4.0学习教程
    FORM表单不刷新提交POST数据
    Linux0.11学习
  • 原文地址:https://www.cnblogs.com/AloneSword/p/3146787.html
Copyright © 2020-2023  润新知