Java学习笔记

了解UML 类图

2016-11-27  本文已影响42人  Android那些事儿

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


一、UML简介

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

二、类图以及类图说明

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

类图 接口

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

上一篇下一篇

猜你喜欢

热点阅读