UML类图基本语法,这都看不懂就放弃学UML吧~

百度百科上面对UML的解释:

简单地说,UML是软件开发的图纸——它对于软件的意义就像建筑物的图纸对于建筑物一样。

这里主要解释基本语法(以下使用starUML绘制):

类(class):

一般来说,类图用这样的矩形表示,第一行是类名(抽象类类名用斜体),第二行是类的特性,一般是指类的属性,第三行是类的操作,通常指类的方法,第二行和第三行开头的+,-,#,~分别表示public、private、protected、package四种访问权限(注:后面出现的类我就不写属性和方法了,直接空着了~)

接口(interface):

                   

有两种表示:

  • 第一种(左边的)和类差不多(上面的<<interface>>在starUML上还默认不显示),在Java里接口一般没有属性的,有也只能是public static finnal固定格式的,下面的class4是工厂接口的实现类。实现类由虚线+空心三角形构成的箭头指向接口~
  • 第二种(右边的)被称作棒棒糖表示法,一个圈和实现类相连接,圈旁边显示接口名,然后属性方法如图显示(为空就可以不显示横线)。实现类由实线与棒棒糖(接口)相连~

类的继承(Super-Class and Sub-Class)

父类和子类,动物类是父类,野兽类是子类,子类由实线+空心三角形箭头指向父类,和父类和子类的关系和上面接口与实现类的关系有些类似,但一个是实线,一个是虚线,而且箭头方向是反的~

实际上呢,类的继承被称作 泛化关系(Generalization),是一般到特殊的关系,就像上面的动物到野兽,甚至再到老虎,这都是泛化。而接口和实现类被称作 实现关系(Realization),表示类是接口特性和行为的实现~

类似的关系还有组合、聚合、关联、依赖:

组合关系(Composition)

组合关系是整体和部分的关系,比如野兽和四肢,鸟和翅膀,整体和部分都是不可分离的,这种关系称之为组合。部分由实线+实心菱形箭头指向整体~

聚合关系(Aggregation)

聚合关系也是整体和部分的关系,但整体和部分是可以分离的,比如狮子和狮群,水滴和河流,汽车和轮胎,整体和部分是可以独立存在的,这种关系称之为聚合(你要说上面那个野兽和四肢、鸟和翅膀也能分离,那就当我例子没举好吧,意思懂了就行~)。部分由实线+空心菱形箭头指向整体(聚合关系的关联性显然没有组合关系那么强,所以实心菱形换成了空心菱形)

关联关系(Association

 

关联关系表示一种拥有关系,拥有类可以知道被拥有类的信息。

关联关系可以是双向的,比如雄狮可以拥有雌狮,雌狮也可以拥有雄狮(互为配偶),再比如老师和学生的关系,老师拥有学生,学生也拥有老师。这样的双向关联的两个类之间用实线连接。

关联关系也可以是单向的,比如学生和课程的关系,学生可以有很多课程,但课程是没法拥有学生的(额,计算机的世界里不存在拟人~~),单向的关联直接由一个实线箭头从拥有类指向被拥有类

依赖关系(Dependency)

依赖关系是一种使用者和被使用着的关系,比如程序猿使用计算机。依赖关系表示一个类的实现会用到另外一个类(依赖),程序猿类类想要实现敲代码的方法就要用到计算机类~表示方法由使用者虚线箭头指向被使用者。

 

以上六种关系的强弱比较为:泛化=实现>组合>聚合>关联>依赖

 

以下的UML图基本表示了上面所有的关系(这大概是程序员被黑的最惨的一次了吧~~~):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>