zoukankan      html  css  js  c++  java
  • 1.11 UML 类图(多看多用就熟悉了)(节选自:《大话设计模式》)

       类:用矩形框表示(类图分三层)

          第一层显示类的名称;(如果是抽象类,就用斜体显示)

          第二层是类的特性,通常就是字段和属性;

          第三层是类的操作,通常是方法或行为。

          (注意前面的符号,“+” 表示 public,“-” 表示 private,“#” 表示 protected)

       接口:(接口有两种表示方法)

          方法一:矩形表示法(矩形表示法与类图的区别主要是顶端有《interface》显示)

             顶端有《interface》

             第一行:接口名称

             第二行:接口方法

          方法二:棒棒糖表示法(小圆圈加一竖线)

             圆圈旁为接口名称

             接口方法在实现类中出现(这样好像看不出来类里面的哪些方法是继承自接口的)

       接下来就可以讲类与类,类与接口之间的关系了:

          继承关系:

              继承关系用空心三角形 + 实线来表示;(从子类指向父类)

                class Bird : Animal
                {
    
                }

          类实现接口:

              空心三角形 + 虚线(从类指向接口)

                class WideGoose : IFly
                {
    
                }

          关联关系:(在一个类中引用到了另一个类的对象,换句话说就是,以被引用类的对象作为一个字段或属性 -- 这里是一种“需要知道”的关系,而不像合成关系中有初始化与实例化的限制)

              关联关系用实线箭头来表示;  (指向字段或属性类)

                class Penguin : Bird
                {
                    private Climate climate;        //关联关系体现在:在企鹅 Penguin类中,引用到气候 Climate对象
                }

          聚合关系:一种弱的“拥有”关系,体现的是 A 对象可以包含 B 对象,但 B 对象不是 A 对象的一部分(如:在“雁群”类中有“大雁”数组对象

              聚合关系用空心的菱形 + 实线箭头来表示;

                class WideGooseAggregate
                {
                    private WideGoose[] arrayWideGoose;     //聚合关系体现在:在雁群类中,有大雁“数组对象”
                }

          合成关系:一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。(鸟和其翅膀就是合成关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的 —— 在“鸟”类中,初始化时需要实例化翅膀类)

              合成关系用实心的菱形 + 实线箭头来表示;(另外,合成关系的连线两端还有一个数字 “1” 和另外一个数字,这被称为基数,表明这一端的类可以有几个实例。如果一个类可能有无数个实例,就用“n”来表示)(聚合关系也可以有基数)

                class Bird
                {
                    private Wing wing;
                    public Bird()
                    {
                        wing = new Wing();      //除了说字段中包含Wing类对象,初始化时还需要实例化翅膀Wing
                    }
                }

          依赖关系:类的方法中需要以别的类的对象作为参数

              依赖关系用虚线箭头来表示。

                class Animal
                {
                    public void MetaBolism(Oxygen yangqi,Water shui)
                    {
    
                    }
                }

        编程是一门技术,更加是一门艺术,不能只满足于写完代码运行结果正确就完事,时常考虑如何让代码更加简练,更加容易维护,容易扩展和复用,只有这样才可以真正得到提高。

  • 相关阅读:
    sql声明变量,及if -else语句、while语句的用法
    视图、事务
    索引
    相关子查询
    递归实现treeView下的省市联动
    创建sqlhelp类以封装对数据库的操作及对可空类型的操作
    ADO.Net操作数据库
    sql的case语句
    vue父组件异步数据子组件接收遇到的坑
    第一次用angularJS做后台管理点滴
  • 原文地址:https://www.cnblogs.com/zhangchaoran/p/8342055.html
Copyright © 2011-2022 走看看