UML类图

本人仅作为笔记使用,请看原文:https://blog.csdn.net/litefish/article/details/51851685

这篇写的也很好https://blog.csdn.net/kevin_darkelf/article/details/11371353


读代码的时候画下类图对于理清关系非常有意义,我今天尝试着画了下,找了些资料,总结后,自己写了一个,记录关键点,备忘.

类图

类图是用来表征一个类的信息的,包括成员变量和成员函数

这是一个类

[java]  view plain  copy
  1. public class Student {  
  2.   
  3.     public Student(String faimly, boolean gender) {  
  4.         this.faimly = faimly;  
  5.         this.gender = gender;  
  6.     }  
  7.   
  8.   
  9.   
  10.     private String faimly;  
  11.     private boolean gender;  
  12.   
  13.     protected String getFaimly() {  
  14.         return faimly;  
  15.     }  
  16.   
  17.   
  18.     public boolean isGender() {  
  19.         return gender;  
  20.     }  
  21.   
  22.     public void setFaimly(String faimly) {  
  23.         this.faimly = faimly;  
  24.     }  
  25.   
  26. }  
对应的类图是,我用gliffy画的

解释下,第一行是类名;第二行是成员,由3部分组成,符号+成员名+返回值。第三行是成员函数

符号为-#+,三选一,分别表示private,protected,public。java里还有个package,我不知道该怎么写,不写算了。


接口

接口的写法和类相似,第一行加个《inteface》
举个例子
[java]  view plain  copy
  1. public interface IEat {  
  2.     String eat(String food);  
  3. }  



类的关系--派生(父子类)

泛化(generalization)
描述子类和父类,用三角形头的线表示,指向父类
[java]  view plain  copy
  1. public class OverseaStudent extends Student {  
  2.     public OverseaStudent(String faimly, boolean gender) {  
  3.         super(faimly, gender);  
  4.     }  
  5.   
  6.     public String getCountry() {  
  7.         return country;  
  8.     }  
  9.   
  10.     private String country;  
  11.   
  12.   
  13. }  



类的关系--实现(接口实现)

实现(Realization)
用虚线三角形表示,指向接口,这里我偷了个懒,就没写具体类了



类的关系--聚合Aggregation

表示has a的关系,一个类里有另一个类,比如下图,Man有个字段是Head,就用菱形箭头表示

类的关系--组合Composition

组合其实跟聚合类似的,区别之处在于,组合的关系,是没有他肯定没有我。聚合是没有他,也可以有我。比如上面的头和人的关系,是聚合关系。没有人,依然有头。但是下边的头和嘴的关系就是组合关系,没有头肯定没有嘴。


类的关系--一般关联(Association) 

类的关联包括,一般关联,聚合,组合,后2者我们已经讲过了,再说说一般关联。
一般关联分为单向关联,双向关联,我认为单向关联意义不大,所以只说双向关联,比如下边这个,Wife内有Husband,Husband内有Wife,此时用一根短线表示,也可以再2端都加上箭头。

注释(note)

注释就是对类图的补充说明,用虚线来和类图相关联




好了,其实到现在为止,基本的类图已经可以画了。

参考文献

http://design-patterns.readthedocs.io/zh_CN/latest/read_uml.html

http://blog.csdn.net/tianhai110/article/details/6339565

http://www.uml.org.cn/oobject/201104212.asp

http://blog.csdn.net/lovelion/article/details/7838679

http://www.uml.org.cn/oobject/201211231.asp

http://www.ibm.com/developerworks/cn/rational/rationaledge/content/feb05/bell/


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值