《大话》中的23种设计模式的代码都是根据UML类图在C#中实现的,可见类图对于面向对象编程的重要性。在UML类图的四种关系这一篇文章详细地介绍过类图之间的关系,关联(聚合、组合),依赖、继承和实现。这篇文章就类图的四种关系在C#的具体实现做一个介绍。
关联
关联是一种“拥有”关系,指一个类需要“知道”另一类的属性或方法。在代码中的表现为在类A的定义中使用类B作为成员变量。如企鹅类和气候类,企鹅根据气候的变化才确定是否需要迁徙。结构图如下:
实现代码:
class Climate //气候类
{
public string climate;
public string Climate
{
get { return climate; }
set { climate = value; }
}
}
class Penguin
{
Climate climate; //Penguin类中引用Climate
public Penguin(Climate climate)
{
this.climate = climate;
}
public void migrate()
{
Console.WriteLine("由于"+climate.climate+"企鹅迁徙");
}
}