码迷,mamicode.com
首页 > 其他好文 > 详细

uml描述类与类之间的关系

时间:2016-04-10 06:56:06      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:uml   设计模式   类图   关联   依赖   

       工作时培训的时候公司同事讲过UML,当时没怎么听,后在在看相关技术书籍的时候,发现用到还不少,于是恶补了些。UML体系庞杂,非十天半月可以掌握,但是作为简单的工具使用,去看清楚系统的内在逻辑还是可以速成的。(非设计系统),股票市场是一场拼图游戏,而UML也可以作为拼图工具去参与面向对象体系软件设计的!

       废话不多说,进入正题。

       先介绍几款画UML的工具,三大知名VISIO,RationalRose,PowerDesign不多说,个人喜欢用开源的,一是免费,二是通常体积较小,运行起来比较快。我用的是astah...下载地址:http://astah.net/download#community 。

       类与类之间的关系如图:

       技术分享

       关联是实线箭头,依赖是虚线箭头,继承是实线大箭头,实现是虚线大箭头。

      一 ,关联关系

       关联关系就是一个类的对象作为另一个类的成员变量出现。

        1  单向关联

  public class Menu {
    private Button loginButton;
    }
    public class Button{
    ....
    }

        技术分享

         老是记不住谁指向谁?为了方便记忆,就记成:我有你我就指向你。

        2双向关联

        

   public class Customer {
     private Product[] products;
  }
  public class Product {
    private Customer customer;
  }

      技术分享

        3 自关联

        自关联主要在数据结构中庸的多,构成链表节点的关键就在于自关联,可以说整个Java数据结构和‘链‘相关的都是自关联。

   public class Node<T> {        //单链表结点类
     public T data;        //数据域,保存数据元素    
     public Node<T> next; 
    }

         技术分享

        4 多重关联

 

   public class Form {
    private Button[] button;
    }
     public class Button {
    ....
    }

        技术分享 

      一个button只能出现在一个Form中,而一个Form可以有多个或者0个Button。


        5 聚合关系

         在聚合关系中,通常表示整体与部分的关系。因为这样,所以成员变量通常作为构造方法,Setter,Getter或者业务方法注入到整体对象中。我的生命(整体)里有你的出现(部分)才是完美的!!!

      

   public class Car {
    private Engine engine;
    private String carName;
    public Engine getEngine() {
        return engine;
    }
    //设值注入
    public void setEngine(Engine engine) {
        this.engine = engine;
    }
    public String getCarName() {
        return carName;
    }
    public void setCarName(String carName) {
        this.carName = carName;
    }
    //构造注入
    public Car(Engine engine, String carName) {
        super();
        this.engine = engine;
        this.carName = carName;
    }
}
    public class Engine {
    ...
   }

       技术分享

    6 组合关系

       描述整体与部分的关系,组合关系中整体可以控制部分的生命周期,一旦整体不存在,部分也将不存在。具有同生共死的关系。

   public class Head{
    private Mouth mouth;
    public Head(){
       mouth = new Mouth();
    }
   }
    public class Mouth{
    ...
   }

        技术分享


     二 ,依赖关系

     依赖关系很好理解,通常体现三种方式:

    1  在某个类中的方法使用了另一个类中的对象作为方法参数。

    2  在某个类中的方法使用了另一个类中的对象作为局部变量。

    3  在某个类中的方法调用了另一个类的静态方法。

  

   public class Driver{
    public void drive(Car car){
        car.move();
    }
    }
     public class Car{
    public void move();
    }

        技术分享

       总的来说,关联关系一个类中必须要有另一个类作为成员变量。而依赖关系则不需要。


     三 ,泛化关系(继承关系)

         泛化很简单就是继承。

         继承的UML表示:

          技术分享

         例子就不举了。人,大人,小孩。  学生,小学生,初中生,高中生.....


     四,接口实现关系

          接口的uml就是把继承的实现箭头改成了虚线。

          技术分享

      基本的掌握了以上类图模式,就可以入类图如无人之地。酣畅淋漓,岂不快哉!!!

      参考书籍《设计模式的艺术--软件开发人员内功修炼之道》,这本书很不错,讲得很清晰。

      何时才能仗剑行天涯!!!


本文出自 “我的博客” 博客,请务必保留此出处http://thinklili.blog.51cto.com/10867130/1762221

uml描述类与类之间的关系

标签:uml   设计模式   类图   关联   依赖   

原文地址:http://thinklili.blog.51cto.com/10867130/1762221

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!