您的位置:首页 > 其它

设计模式------------UML关系

2014-03-24 14:51 435 查看
设计模式总览

依赖关系,关联关系,继承关系,接口实现,组合关系,聚合关系,

这里说几种常用的关系表示方法:



1、依赖关系:

用虚线+箭头表示。

依赖关系体现为下列几种情况:

①成员函数参数

②局部变量

③调用静态方法

class A
{
public:
int a;
static void funcA();
};

class B
{
public:
void funcB(A arg) // ①
{
A temp;			// ②

A.funcA();		// ③
}

};
上例代码中的三种情况,均为B依赖于A。

2、关联关系

实线+箭头

表现形势:指针成员

class A
{
public:

};

class B
{
public:
A* p;
};
B持有一个A的对象的引用,但不控制该对象的生命周期。

3、组合关系

实心菱形+实线

表现形势:数据成员

class A
{
public:

};

class B
{
public:
A a;
};
B控制A的整个生命周期。(也可以以指针形势实现,但要手动控制a的生命周期)

4、聚合关系

空心菱形+实线

代码与关联关系一致,要从具体实现来区分到底是那种关系。(关联,聚合,组合三种关系的表现形势非常相似,要从具体的逻辑来区分到底是什么关系)。

关联关系是同层之间的关系,切彼此生命周期互不干涉。如 我 和 我的朋友

聚合关系是处于不同层次之间的关系,切彼此生命周期互不干涉。 如 公司 和 员工

组合关系是处于不同层次之间的关系,切整体与部分之间不可分离,即整体不存在了,那部分也就不存在了。 如 你 和 你的大脑。

5、继承关系

用三角形+实线

class A
{
public:

};

class B : public A
{
public:

};


6、接口实现

用三角形+虚线

c++中并没有接口这个概率,但可以用抽象类来模拟。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: