zoukankan      html  css  js  c++  java
  • 设计模式前站——UML类图

    符号表示访问权限:

    +表示public
    
    -表示private  
    
    #表示protected 
    
    ~表示default,也就是包权限  
    
    _下划线表示static  ,或者直接写上static
    
    斜体表示抽象

    类之间关系:类与类一共有如下几种关系:继承(Generalization)、实现(Realization)、依赖(Dependence)、关联(Association)、聚合(Aggregation)、组合(Composition)。

    继承:三角形+实线【三角是父类】

    实现:三角形+虚线【三角是接口】

    依赖:箭头+虚线【箭头是局部变量,或方法参数,对静态方法调用】

    关联:箭头+实线 【箭头一方是成员变量】

    聚合:空心菱形+实线箭头【菱形一方为整体】

    组合:实心菱形+实线箭头【菱形一方为整体】

    1、继承关系

    继承关系用三角形+实线表示,方向从子类指向父类。

    2、实现关系

    实现是类与接口的一种关系,类实现接口的所有特征与行为。接口有标识<<interface>>

     实现关系用三角形+虚线表示,方向从类指向接口。

    3、依赖关系

    依赖关系是一种弱的使用的关系, 即一个类的实现需要另一个类的协助。

    依赖关系用箭头+虚线表示,方向从依赖类指向被依赖类。

    动物依赖氧气和水。

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

    public class Animal {
    
        public int lives;
    
        public void breeding() {
    
            if (lives > 0) {
    
                System.out.println("我要繁殖啦~");
    
            }
    
        }
    
        //新方法,新陈代谢
    
        public void metabolism(Oxygen o, Water w) {
    
            System.out.println("新陈代谢需要" + o.toString() + "和" + w.toString());
    
        }
    }

    4、关联关系

    关联关系比较常见,是一种强的、稳定的、持久的关系, 它使一个类知道另一个类的属性和方法。

     关联关系用箭头+实线表示。方向从关联类指向被关联类。

    代码体现在成员变量(气候是企鹅类的成员变量)中

    5、聚合关系

    聚合关系表示部分与整体的一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。

     聚合关系用空心菱形+实线箭头表示,菱形顶端为整体。

    代码体现在成员变量中,可以通过构造方法传递依赖,也可通过setter方法传递依赖。

    public class WideGooseAggregate {
    private WildGoose[] arrayWideGoose = new WildGoose[3]; public WideGooseAggregate(){ arrayWideGoose[0] = new WildGoose(); arrayWideGoose[1] = new WildGoose(); arrayWideGoose[2] = new WildGoose(); } public void vFly() { System.out.println("V型飞行"); for (WildGoose wGoose : arrayWideGoose) { wGoose.flyaway(); } } public void hFly() { System.out.println("一型飞行"); for (WildGoose wGoose : arrayWideGoose) { wGoose.flyaway(); } } }

    6、组合关系

    组合关系表示部分与整体的一种强的拥有关系,体现为严格的部分和整体关系,部分和整体的生命周期一样。

     组合关系用实心菱形+实线箭头表示,菱形顶端为整体。

    代码体现在成员变量

    源码,是痛苦的,又是快乐的,如果没有这痛苦,也就没有了这快乐!
  • 相关阅读:
    php二维数组指定下标排序
    laravel使用auth管理后台amdin数据表
    laravel插件
    laravel中Horizon简单介绍适合于redis操作队列
    laravel5.5或laravel5.7版本自定义日志记录
    laravel使用"tymon/jwt-auth": "0.5.*"
    larval5.7安装jwt使用
    ubuntu ibus 输入法总在左下角不跟随光标的处理
    Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier
    30种mysql优化sql语句查询的方法<转>
  • 原文地址:https://www.cnblogs.com/erlongxizhu-03/p/12584138.html
Copyright © 2011-2022 走看看