zoukankan      html  css  js  c++  java
  • UML类图

    前言

      这几天回顾了《大话设计模式》,发现看类图的时候分不清了,为了加强记忆,也方便回顾,自己手动画了一次类图,并参考了网上文章将此作为笔记,记录下来。

    类图

    共三层:

      1、类名,如果是抽象类为类名为斜体。

      2、特性,字段和属性

      3、操作,方法,+是公共(Publish)、-是私有(Private)、#是保护(Protected)

    关系

    关系有六种:

      继承(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

    继承(Generalization)

      描述:类与类的继承关系,子类带有父类的特性和操作

      图形表示:空心三角形+实线,由子类指向父类

      代码表现:继承

    public class 鸟 : 动物
    {
        public virtual object 羽毛
        {
            get;
            set;
        }
    
        public virtual void 下蛋()
        {
    
        }
    }
    View Code

    实现(Realization)

      描述:类与接口的继承关系,类对接口的操作的实现

      图形表示:空心三角形+虚线,由类指向接口

      代码表现:继承

    public class 大雁 : 飞翔
    {
        public virtual void 下蛋()
        {
    
        }
    
        public virtual void 飞()
        {
    
        }
    
    }
    View Code

    关联(Association)

      描述:拥有的关系,类A知道类B的属性和方法

      图形表示:箭头+实线,指向被关联的类

      代码表现:成员变量

    public class 企鹅
    {
        public virtual 气候 气候
        {
            get;
            set;
        }
    
        public virtual void 下蛋()
        {
    
        }
    }
    View Code

    聚合(Aggregation)

    描述:弱的拥有关系,整体和部分的关系,体现的是A对象,但B对象不是A对象的一部分,也就是B对象能脱离对象A而单独存在

    图形表示:空心菱形+实线+箭头,箭头指向部分

    代码表现:成员变量(数组)

    public class 雁群
    {
        public virtual IEnumerable<大雁> 大雁
        {
            get;
            set;
        }
    
        public virtual void 一行飞行()
        {
    
        }
    
        public virtual void V行飞行()
        {
    
        }
    }
    View Code

    组合(Composition)

    描述:强的拥有关系,体现了严格的部分和整体的关系,主要体现在部分和整体的生命周期一样。B对象是A对象的一部分,A对象不存在,B对象也不存在

    图形表示:实心菱形+实线+箭头,箭头指向部分

    代码表现:成员变量(构造函数里new)

    public class 鸟 : 动物
    {
        private IEnumerable<翅膀> 翅膀;
        public 鸟()
        {
            翅膀 = new IEnumerable<翅膀>();
        }
    
        public virtual object 羽毛
        {
            get;
            set;
        }
    
        public virtual void 下蛋()
        {
    
        }
    }
    View Code

    依赖(Dependency)

    描述:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖,不然会造成死循环

    图形表示:虚线+箭头,箭头指向被使用者

    代码表现:局部变量、方法参数或者对静态方法的调用

    public abstract class 动物
    {
        public virtual object 生命
        {
            get;
            set;
        }
    
        public virtual void 新陈代谢(水 水,氧气 氧气)
        {
    
        }
    
        public virtual void 繁殖()
        {
    
        }
    }
    View Code

    附录

    各种关系的强弱顺序:

            继承 = 实现 > 组合 > 聚合 > 关联 > 依赖 

  • 相关阅读:
    SpringMVC-------1.spriingMVC简介和简单案例
    MyBatis-----7.pageHelper分页助手
    MyBatis-----4.实现关联表查询
    MyBatis-----6.逆向工程(generator)
    MyBatis-----1.MyBatis简介和使用
    MyBatis-----2.通过映射接口实现CRUD
    Spring-2
    Spring-1
    php调用阿里云手机归属地查询
    php身份证验证
  • 原文地址:https://www.cnblogs.com/skychen1218/p/4749367.html
Copyright © 2011-2022 走看看