http://book.csdn.net/bookfiles/575/10057518902.shtml

虚线箭头表示“依赖关系”,依赖有“使用”的语义,比如患者与医生的关系。
实线箭头表示“带了导航行的关联关系”,从一个类到另一类。
使用实线箭头时通常会带上“多重性”的表达方式。如:一对多,一对一,多对多等等

常见的关系有:一般化关系(Generalization),关联关系(Association),聚合关系(Aggregation),合成关系(Composition),依赖关系(Dependency)。

      其中,聚合关系(Aggregation),合成关系(Composition)属于关联关系(Association)。

      一般关系表现为继承或实现关系(is a),关联关系表现为变量(has a ),依赖关系表现为函数中的参数(use a)。

      一般化关系:表示为类与类之间的继承关系,接口与接口之间的继承,类对接口的实现关系。
      表示方法: 用一个空心箭头+实线,箭头指向父类。或空心箭头+虚线,如果父类是接口。

      关联关系:类与类之间的联接,它使一个类知道另一个类的属性和方法。
      表示方法:用 实线+箭头, 箭头指向被使用的类。

      聚合关系:是关联关系的一种,是强的关联关系。聚合关系是整体和个体的关系。关联关系的两个类处于同一层次上,啊聚合关系两个类处于不同的层次,一个是整体,一个是部分。
      表示方法:空心菱形+实线+箭头,箭头指向部分。

      合成关系:是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期,合成关系不能共享。
      表示方法:实心菱形+实线+箭头,

      依赖关系:是类与类之间的连接,表示一个类依赖于另一个类的定义。例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。
      表示方法:虚线+箭头


图一:

uploads/200706/04_211918_1121523.jpg


此实线箭头表示, 继承, 从一个非接口类的继承.

图二:
uploads/200706/04_212112_1121525gl.jpg


那条连线表示双向关联:
看左边, Flight扮演assignedFights角色, 有0到1个Plane跟他关联(一个航班要么取消了没有飞机,要么只能对应一架飞机)
看右边, Plane扮演着assignedPlane角色, 有0到多个Flight跟他关联(一个飞机可以参与多个航班, 也可以停在仓库里面烂掉)

图三:
uploads/200706/04_213002_1121526dxgl.jpg


那条连线表示单向关联:
基本的意义跟上面的是一样的, 唯一不同的是, 右边的类对左边的类是一无所知的.

图四:
uploads/200706/04_213232_1121527rjb.jpg


那个大的包围的框叫软件包, 名字为Account, 就一些可以归类的类包装起来.

图五:
uploads/200706/04_213441_1121529xjc.gif


如此虚线的箭头表示实现一个接口.

图六:
uploads/200706/04_213626_11215210gll.jpg


水平的连线还是表示上面所说的关联, 但从关联连线中引伸出来的虚线, 这意味当Flight类的一个实例关联到 FrequentFlyer 类的一个实例时,将会产生 MileageCredit 类的一个实例.

图七:
uploads/200706/04_213911_11215211jbjh.jpg


带菱形的箭头表示基本聚合, 由上图知道, Wheel类扮演wheels角色, 聚合4个到Car对象里面去,
空心的菱形表示Wheel对象并不随Car的创建而创建,销毁而销毁.

图八:
uploads/200706/04_214248_11215212zhjh.jpg


意义和上面类似, 唯一不同的是, 实心菱形表示Department对象随Company对象的创建而创建,销毁而销毁.

图九:
uploads/200706/04_214435_11215213fs.gif


表示反射关联, 显示一个Employee类如何通过manager / manages角色与它本身相关。当一个类关联到它本身时,这并不意味着类的实例与它本身相关,而是类的一个实例与类的另一个实例相关。

Posted on 2008-10-13 14:53 micheal's tech 阅读(1769) 评论(0)  编辑 收藏 引用 所属分类: 设计模式

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理