UML类图基本用法

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

类图

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

 

这是一个类

 

public class Student {

    public Student(String faimly, boolean gender) {
        this.faimly = faimly;
        this.gender = gender;
    }



    private String faimly;
    private boolean gender;

    protected String getFaimly() {
        return faimly;
    }


    public boolean isGender() {
        return gender;
    }

    public void setFaimly(String faimly) {
        this.faimly = faimly;
    }

}

对应的类图是,我用gliffy画的

 

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

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

 

接口

接口的写法和类相似,第一行加个《inteface》

举个例子

public interface IEat {
    String eat(String food);
}

 

 

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

泛化(generalization)

描述子类和父类,用三角形头的线表示,指向父类

public class OverseaStudent extends Student {
    public OverseaStudent(String faimly, boolean gender) {
        super(faimly, gender);
    }

    public String getCountry() {
        return country;
    }

    private String country;


}

 

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

实现(Realization)

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

 

 

类的关系--聚合(Aggregation)

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

类的关系--组合(Composition)

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

类的关系--依赖(Dependency

如下图Emplyee依赖于Calculator


类的关系--一般关联(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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值