UML基础入门

UML基础入门

        最近打算学习设计模式,但是一般都带有UML类图,所以学习了以下UML。主要学习类图

一、UML定义

        UML(Unified Modeling Language统一建模语言)是一种图形化的语言,它可以帮助我们在OOAD(面向对象分析和设计)过程中标识元素、构建模块、分析过程并可通过文档说明系统中的重要细节。

二、UML图的分类

        静态模型(static model),创建并记录一个系统的静态特征,反映一个软件系统基础、固定的框架结构。静态建模包括:用例图(Use Case Diagram)、类图(Class Diagram)、对象图(Object diagram)、组件图(Component diagram)、部署图(Deployment diagram)。
        动态模型(dynamic model,用以展示系统的行为。动态建模包括:时序图(Sequence diagram)、协作图(Collaboration diagram)、状态图(State Chart Diagram)、活动图(Activity Diagram)。

三、动手画图

        画图之前,要去下载一个StarUML,下载地址:http://staruml.io/download ,网上破解的方式有很多,可以自行baidu。(不破解也影响使用)。

     1、用例图(Use Case Diagram):展示系统的核心功能及与其交互的用户用户被称之为“活动者”(Actor),用例使用椭圆表示。下图表示Admin具有增删改查的权限,guest只具有查询权限。

            1a48dce7b7c1478e70b53c4cdfb23da2c09.jpg

    2、类图(Class Diagram)表现类的特征,类图描述了多个类、接口的特征,以及对象之间的协作与交互。由一个或多个矩形区域构成,内容包括:类型(类名)、属性(可选)、 操作(方法)(可选)。

    ①首先先画一个简单的Person类,最上面表示类名,中间的是属性,下面的是方法。+表示public,#表示protected,-表示private,~表示package。而方法的返回值类型是放在方法后面表示 method():返回值类型 ,入参也是名称在前,类型在后。

       6848e54023ddfbf9b986c9369ac2037b615.jpg9ae0d8c5cafcc9caddddba824a7dc6195f2.jpg

    ②抽象类:抽象的名称是斜体的。

    acda3f831cb414ab2bc9c8b73e21368daae.jpg

    ③接口

        ed01e6c0664c5783ee489a7b901a35f93ed.jpg

    ④类图之间的关系之一般化Generalization(继承)

        指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;

        fc1a023377ee1a6aa93eb424e8ade3e7851.jpg

   ⑤类图之间的关系之关联Association

        实体之间的一个结构化关系表明对象是相互连接的。箭头是可选的,它用于指定导航能力。如果没有箭头,暗示是一种双向的导航能力。

        0bda661d0176427f7abcb9b09f2f8722f3b.jpg

⑥类图之间的关系之聚合Aggregation关系

        聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来区分; 

a8bfbc4bd3635e5c8b160fdefdf2df21cef.jpg

⑦类图之间的关系之组合Composition(合成)关系

        组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的四肢;表现在代码层面,和关联关系是一致的,只能从语义级别来区分; 

be2401019194a08a990770d0c8faf41da01.jpg

⑧类图之间的关系之依赖Dependency关系

        可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用;

0053ed721c4875dfde5adcf9283b5e632aa.jpg

3、对象图(Object diagram)

    404b21fca684b47bf242925c7a8ceae3f39.jpg

4、组建图(Component diagram):表现软件组件之间的关系

ef8a92eed4a725ff4abe30e6476a6ea6aa9.jpg

5、部署图(Deployment diagram):表现用于部署软件应用的物理设备信息

4959f7677c347ea3323a580e2e5305e0643.jpg

6、时序图(Sequence diagram):捕捉一段时间范围内多个对象之间的交互信息,强调消息交互的时间顺序。

2e6031c6e0e61227eef8e9216eebd184d7d.jpg

 

更多知识请看 https://www.cnblogs.com/alex-blog/articles/2704214.html

 

转载于:https://my.oschina.net/caofanqi/blog/3006150

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值