zoukankan      html  css  js  c++  java
  • UML类图

    1. UML类图是什么

    UML是统一建模语言,是一种可视化的面向对象建模语言,是一种用来对真实世界物理进行建模的标准标记,用图形方式表现典型的面向对象系统的整个结构。

    如果把软件当作房子,那么类图就是房子的施工图了.

    通过类图,就能实际的把系统中的各个类,即对象描述清楚,下一步就是按照这个详细的设计编码了。

    2. 工具下载&使用

    我用的是Enterprise Architect 12.1(以下简称EA)这个工具画UML类图的,这个工具十分强大,还可以把数据库的表逆向生成UML图.Enterprise Architect下载

    2.1 创建新项目

    安装成功后我们来创建一个项目小试身手.

    这里的东西是模板自动生成的,可以点击看看,学习一下.我这里都删了,然后重新创建.

    2.2 创建类图

    创建一个类:

    详细页设置属性和方法:

    设置属性:

    设置方法:

    一个类就创建好了:

    再来个简单的例子 : 我们有一个动物的接口、狗的抽象类,还有一个泰迪的类,它们的关系是泰迪继承狗的抽象类,狗的抽象类实现动物接口,它们都有一个公共的叫声(cry)方法.

    用UML类图画一下它们三个的关系.

    2.3 EA添加复杂类型参数的方法

    点击类图的添加方法和参数,只能选择基本类型,那么如何创建复合类型的返回值呢.

    现在我们已经对类图的基本结构、访问修饰符在类图的符号有了一个基本的了解,
    接下来做一个进阶一点的学习.

    3. UML类图概述

    这是网友总结的UML类图使用案例,很详细,功能很全.

    4. UML类图详解

    通过上面的图对UML有一个整体的认识,接下来我会对UML类图中的一下几种关系为大家做一个详细的介绍:

    • 泛化: 图形是空心三角+实线
    • 实现: 图形是空心三角+虚线
    • 关联: 图形是箭头+实线
    • 组合: 图形是实心菱形+ 实线箭头
    • 聚合: 图形是空心菱形+箭头
    • 依赖: 图形是箭头+虚线

    4.1 泛化

    定义: 泛化是一种继承关系,继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

    符号: 空心三角指向父类

    示例: 泰迪是狗的一个种类,所以泰迪继承狗.

    4.2 实现

    定义: 是一种类与接口的关系,表现是类是接口所有特征和行为的实现

    符号: 空心三角指向父类

    示例: 狗是一种动物,所以狗实现动物的接口

    4.3 关联

    定义:

    关联是一种结构关系,说明一个事物的对象与另一个事物的对象相联系.

    给定有关联的两个类,可以从 一个类的对象得到另一个类的对象.

    关联有两元关系和多元关系,两元关系是指一种一对一的关系,多元关系是一对多或多对一的关系。两个类之间的简单关联表示了两个同等地位类之间的结构关系。

    当你想要表示结构化关系时使用关联。(可以想想数据库表的关联关系)

    通常情况下,关联关系是通过类的成员变量来实现的.

    符号: 箭头指向被拥有者

    示例: 一个公司雇员,公司与雇员之间就是一种关联关系。

    代码:

    //公司
    public class Company {   
    
     //一个公司雇员,公司与雇员之间就是一种关联关系。
    private Employee emp ; 
    
    }
    
    
    public class Employee{
    }
    

    关联关系还可以细分为聚合和组合两种.

    4.4 聚合

    定义: 聚合表示一种弱的"拥有"关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分.

    符号: 空心菱形指向整体

    示例: 雁群包含大雁,但是大雁可以脱离雁群

    4.5 组合

    定义: 组合是一种强的"拥有"关系,体现了严格的部分和整体关系,部分和整体的生命周期一样 部分不能离开整体存在.

    符号: 实心菱形指向整体

    示例: 以躯干划分,人是由身体、四肢组成的,胳膊不能脱离人单独存活.

    4.6 依赖

    定义: 依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的事物,反之不成立。在你想显示一个事物使用另一个事物时使用。

    依赖关系的使用形式: 局部变量、方法的参数或者对静态方法的调用

    符号: 虚线箭头指向被拥有者.

    示例: 通常情况下,依赖关系体现在某个类的方法使用另一个类作为参数,例如人类使用螺丝刀.

    代码:

      //螺丝刀,作为人类的工具,是用来被人类使用的
    public class Screwdriver {  
    
    }
    
    
    public class Person{
     //拧螺丝,需使用螺丝刀
           public void screw(Screwdriver src){   
                        }
    }
    

    5. 参考资料

    大话设计模式

    UML类图与类的关系详解

    什么是UML,UML类图

    Java类之间的关联关系

  • 相关阅读:
    pandas--对axis=0,axis=1的理解
    启动secondarynamenode时报错
    5月27日经历问题(在有框架的情况下从无到有增加一套功能)
    5.21工作记录(修改页面跳转,去掉多余的js;增加图片清除功能)
    工作记录520
    5月14日经历问题
    idea快捷键
    Linux下常用redis指令
    初识lunix
    Redis
  • 原文地址:https://www.cnblogs.com/xisuo/p/11168373.html
Copyright © 2011-2022 走看看