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

设计模式总览


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


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



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++中并没有接口这个概率,但可以用抽象类来模拟。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章