設計模式------------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++中並沒有接口這個概率,但可以用抽象類來模擬。




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