前两天我们要试讲,我选择试讲的内容是UML中的四种关系,UML刚学过,讲起来应该挺容易的。这四种关系:关联、依赖、泛化、实现,一说都知道,也看过一些例子,能说出那些例子来。但是有一天,一个同学拿着我写的试讲稿,我上面写着:其中,依赖的关系最弱......。他就问我为什么他最弱啊,你知道他在代码中如何体现的不,不过想想当时学UML时还真没注意过,当时视频里也有讲过这些关系如何在代码中体现的,但是就一过了了,没有去关注,也没去总结着几种关系他们在代码里如何区别的。下面就这几种关系写个例子,附上代码哈。
一、依赖
依赖关系最弱,因为依赖类是在被依赖类中的一个方法的参数里,他会随着调用该方法而实例化,随着该方法的结束而消亡。例如:
代码:class Professor
{ public void teach (Course C)
{...}
}
二、关联
关联比依赖强,因为他是体现在属性里,会随着类的实例化就实例化了。例如:
代码:class Person
{
public Company m_company;
}
2.1聚合
聚合表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。例如:
代码:class WideGooseAggregate
{
private WideGoose[] arrayWideGoose;
}
在雁群WideGooseAggregate类中,有大雁数组对象arrayWideGoose。
2.2组合
组合是一种强的‘拥有’关系,体现了严格的部分和整体的关系,部分和整体的生命周期是一样的。例如:
代码:class Bird
{
private Wing wing;
public Bird()
{ wing=new Wing();}
}
在鸟Bird类中,初始化时,实例化翅膀Wing,他们之间同时生成。
三、泛化
泛化即继承关系,是‘is A’关系,一般/特殊关系,特殊元素的对象可以代替一般元素的对象。例如:
代码:class Employee
{...}
class Manager :Employee
{...}
class Enginee :Employee
{...}
四、实现
一个类实现一个接口。例如:大雁实现飞翔接口。
代码:interface IFly
{
void Fly();
}
class WideGoose :IFly
{...}