类之间的关系

来源:互联网 发布:2017淘宝店铺运营方案 编辑:程序博客网 时间:2024/04/19 07:02

 很早以前就学过UML了。不过好像一直都对类之间的关系不是很理解,对各种关系总是很confuse。最近又从新开始看design pattern,才发现以前的我根本就没有理解OO思想,现在总算也是有点感觉了。一兴奋,就开始写blog了。:)

一般化关系(Generalization),表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。

关联关系(Association),表示类与类之间的联接,使用实例变量实现的。表示一种拥有的关系。强关联有聚合关系(Aggregation),合成关系(Composition)。
聚合关系表示的是一种整体和个人的关系。比如说有一个人的类,类中有一个属性是他的徒弟:
Class Person
{
  Public Prentice p1;
  ...
}
那么如果有一个对象唐僧,他有一个徒弟孙悟空(p1),那么,他们之间的关系就是聚合关系了。
合成关系表示的是一种更强的关联关系,是一种整体和部分的概念。同样用那个人的类来做例子的话,如果他有一个属性叫做Limb(四肢):
Class Person
{
  Public Prentice p1;
  Public Limb l1;
  ...
}
那么唐僧和他的手(l1)之间的关系就是一种合成关系了。

依赖关系(Dependency),也是一种类与类之间的关系,表示一种使用到的概念。这个讲法好像比较不清楚。其实他的意思就是区别于成员变量的意思。也就是说不是成员变量,但是在类中有使用到。同样用唐僧的例子来说。比如说他要骑马,那么他要有一个骑马的函数Drive(Horse h)。其中Horse这个类和唐僧的关系就是依赖的关系,唐僧依赖于那匹马。依赖的关系(动作)是Drive。

当然了,上面出现的徒弟,四肢,马都得是类,否则哪来的类与类之间的关系?也就是说,如果在一个项目中,没有把徒弟,四肢或马设计为类的话,那也就无从谈起什么类之间的关系了。

原创粉丝点击