了解UML 类图

文章简介
1、了解UML统一建模语言
2、重点关注类图以及使用


一、UML简介

UML:描述、构建和图形化文档系统的可视化描述语言。分为静态和动态两种。
静态图:有助于设计包、类名、属性等。
包图:PackageDiagram
组件图:ComponentDiagram
对象图:ObjectDiagram
部署图:DeploymentDiagram
复合结构图:CompositeStructureDiagram
用例图:UseCaseDiagram
类图:ClassDiagram
动态图:有助于设计逻辑、代码行为、方法体。
交互概观图:InteractiveOverviewDiagram
顺序图:SequenceDiagram
通信图:communicationDiagram
状态图:StateDiagram
活动图:ActivityDiagram
定时图:TimingDiagram

二、类图以及类图说明

类图:类的属性以及方法。以及类与类之间的关联。
1、类图说明:

  • 类:使用三层矩形框表示。第一层显示类的名称,抽象类使用斜体表示。第二层表示类的属性;第三层表示类的方法。
类图
  • 接口:与类图相比,顶端有<<Interface>>显示。第一层是接口名称。第二层是接口中的常量。第三层是接口中的方法。
接口

2、类与类(对象)之间的关系以及类图描述。
类与类之间的关系主要有如下几种:泛化(继承)、依赖、关联、组合。
综述:UML中对象的关系都是在相应的软件环境或实际场景下定义的。区别聚合和组合的关系,在于它们之中整体和部分的关系强、弱,以及它们之间的依附关系。不同场景,不同定义。

2.1、泛化:一个元素是另一个元素的特殊化。也类似的成为继承关系。在UML中,泛化关系用空心三角形+实线来表示,箭头指向为父类。
案例代码:

// 泛化
        People person = new Man();
        System.out.println(person);

    /* 泛化演示类 2016-10-27 start */
    static class People {
        public String toString() {
            return "人类";
        }
    }
    static class Man extends People {
        public String toString() {
            return "男人";
        }
    }
    static class WoMan extends People {
        public String toString() {
            return "女人";
        }
    }
    /* 泛化演示类 2016-10-27 end */
泛化

2.2、依赖:某个元素在一定程度上依赖于另一个元素,同时,一个类的改动可能胡影响另一个类的运行效果,则两个类存在依赖关系。例如:工具类,依赖工具类中的方法进而获得展示的UI名称。
案例代码:

//依赖
        Coder coder = new Coder();
        System.out.println(coder.coding());

    /*依赖演示类 start*/
    static class Computer{
        public static String codingWithComputer(){
            return "coding with computer";
        }
    }
    
    static class Coder{
        public static String coding(){
            return Computer.codingWithComputer();
        }
    }
    /*依赖演示类 end*/
依赖

2.3、关联:当一个类的实例与另一个类的一些特定实例存在固定的对应关系,则称两个类存在关联关系。
案例代码:

//关联
        Person age18 = new Person("372926198502184567");//人和身份证ID:1对1关联
        System.out.println("身份证ID:"+age18.getPersonId());

    /*关联演示类 start*/
    static class IDCard{
        public final String ID;
        public IDCard(String id){
            ID = id;
        }
    }
    static class Person{
        IDCard idcard;
        public Person(String 身份证ID){
            idcard = new IDCard(身份证ID);
        }
        public String getPersonId(){
            return idcard.ID;
        }
    }
    static class Class{
        List<Person> persons = new ArrayList<Person>();
    }
    /*关联演示类 end*/
关联

2.4、组合:组合关系是类之间一种整体与部分之间的关系,如一只青蛙有四条腿,青蛙类与青蛙腿类之间的关系就是组合关系。
案例代码:

//组合
        青蛙 qingwa = new 青蛙();
        青蛙手 qingwaHand = new 青蛙手();

    /*组合演示类 start*/
    static class 青蛙{
        青蛙手 m青蛙手;
        青蛙脚 m青蛙脚;
    }
    static class 青蛙手{
        public void work() {
            System.out.println("“支撑平衡");
        }
    }
    static class 青蛙脚{
        public void work() {
            System.out.println("“支撑平衡");
        }
    }
    /*组合演示类 end*/
组合

2.5、聚合:
聚合关系是类之间的一种较弱的耦合关系,如一个字符串数组和一个字符串就是一种聚合关系。
部分的生命周期可以超越整体。如电脑和鼠标。
案例代码:

//聚合
        Company company = new Company();//公司与员工、部门之间是弱的包含关系
        Employee emplyee = new Employee();
        Department department = new Department();

    /*聚合演示类 start*/
    static class Company{
        Department mDepartment;
        Employee mEmployee;
        public void getDescription(){
            System.out.println("公司");
        }
    }
    static class Employee{
        public void getDescription(){
            System.out.println("雇员");
        }
    }
    static class Department{
        public void getDescription(){
            System.out.println("部门");
        }
    }
    /*聚合演示类 end*/
聚合

案例下载:http://download.csdn.net/detail/hailushijie/9667855

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容