1.3 類圖
2. 設計模式
3. 建立型模式
主要4種:
從客戶角度描述功能,包括:
如新增、修改、刪除資料均需包含更新資料庫功能。
偶爾執行其它可選功能,如儲存成績後想列印出來。
主要元素:類、介面、關係。 關係 即4大關係。 類圖中也有包含和約束。
由類名、屬性和方法組成。加號public,減號private,井號protected。
比如,人擁有(實線指向)車,用小箭頭(->)。
更強的關聯關係,如汽車和引擎,引擎指向車,空心菱形在車一端。
如公司和部門,空心菱形改實心。
目前分類:gof的23種+簡單工廠模式 == 24種
可維護,可復用,目的是高內聚低耦合。
情景:不想new(繁瑣),而是直接用,且類很少。所以給工廠createobject傳參,返回需要的物件。
缺點:
為了符合產品族開閉原則,可以引入抽象工廠,每個具體工廠生產乙個類,如蘋果廠,香蕉廠。這叫做工廠方法模式,適用於客戶不需要知道所需物件的情況。
缺點:類會越來越多,不好維護。
工廠方法模式可以增加產品等級,抽象工廠模式則是針對產品族。
一般用於管理者物件。
步驟:建構函式私有
靜態私有類指標
靜態getinstance()
單例模式不用考慮釋放問題
// 懶漢式
class singleton_lazy
static singleton_lazy* getinstance()
return psingleton;
}private:
static singleton_lazy* psingleton;
};singleton_lazy* singleton_lazy::psingleton = null;
// 餓漢式
class singleton_hungry
static singleton_hungry* getinstance()
private:
static singleton_hungry* psingleton;
};singleton_hungry* singleton_hungry::psingleton = new singleton_hungry;
懶漢式遇到多執行緒是不安全的,可能多次new。所以要用餓漢式。 設計模式 建立型模式 原型模式
1 原型模式 prototype模式 是指 用原型例項指定建立物件的種類,並且通過拷貝這些原型,建立新的物件 2 原型模式是一種建立型設計模式,允許乙個物件再建立另外乙個可定製的物件,無需知道如何建立的細節 3 工作原理是 通過將乙個原型物件傳給那個要發動建立的物件,這個要發動建立的物件通過請求原型...
設計模式 建立型模式
建立型模式 與物件的建立有關。1 簡單工廠模式 靜態工廠 簡單工廠關聯具體類,通過簡單工廠來建立具體的類。封裝變化到簡單工廠裡面去。工廠類 具體類 2 工廠模式 抽象工廠 具體工廠 具體類 要是新增新的類,只需要擴充套件就可以了。他們對外的行為是一致的。3 抽象工廠 抽象工廠 具體工廠 具體類 具體...
設計模式 建立型模式
建立型模式 工廠方法 核心 客戶端呼叫具體的工廠,讓工廠去決定例項化哪個具體的類。核心 為工廠類建立對應的具體的類,表現為和對應的具體類的依賴關係。抽象工廠類 inte ce productfactory 具體a工廠 class concreteproductfactorya productfact...