設計模式(2)

2021-08-01 19:08:56 字數 1454 閱讀 8454

工廠模式:定義了乙個建立物件的介面,但由子類決定要實現例項化的類是哪乙個,工廠方法讓類把例項化推遲到子類。

1、所有的工廠都是用來封裝物件的建立。

2、工廠方法使用繼承:把物件的建立委託給子類,子類實現工廠方法來建立物件。

3、抽象工廠方法使用物件組合:物件的建立被實現在工廠介面所暴露出來的方法中。

4、抽象工廠建立相關的物件家族,而不需要依賴他們的具體類。

5、依賴倒置原則,指導我們避免依賴具體型別,而要盡量依賴抽象。

public class mailsend implements sender 

}public inte***ce sender

public class sendfactory else if ("sms".contains(type)) else

}public sender sendermail()

public sender sendersms()

}public class smssend implements sender

}public class testfactorydemo

@test

public void doublefactorydemo()

}

單件模式:確保乙個類只有乙個例項,並提供乙個全域性訪問點。

1、確保乙個類最多乙個例項。

2、實現單例模式需要私有的構造器、乙個靜態方法和乙個靜態變數。

3、解決多執行緒的問題。

public class testsingledemo 

@test

public void test2()

}/**

* @description:餓漢式,先初始化物件

*/class single1

public void setnum(int num)

// 1.將建構函式私有化

private single1()

// 2.在類中建立本類物件

private static single1 s = new single1();

// 3.提供乙個方法可以獲取該物件

public static single1 getinstance()

}/**

* @description:懶漢式,方法被呼叫時才初始化,延時載入

*/class single

public void setnum(int num)

// 1.將建構函式私有化

private single()

// 2.在類中建立本類物件

private static single s = null;

// 3.提供乙個方法可以獲取該物件

public static single getinstance()

}

設計模式 2

1.設計模式分類 建立型結構型 行為型範圍 類factory method adapter interpreter template method 物件abstract factory builder protype singleton adapter 物件 bridge composite dec...

設計模式(2)

用原型例項指定建立物件的種類,並且通過這些拷貝這些原型來實現建立新的物件。注意 淺複製和深複製。當我們要完成在某一細節層次一致的乙個過程或一系列步驟,但其個別步驟在更詳盡的層次上實現可能不同時,通常考慮用模板方法模式來處理。當不變的行為和可變的行為在方法子類實現中混合在一起的時候,不變的行為就會在子...

設計模式(2)

觀察者模式 observer模式是行為模式之一,它的作用是當乙個物件的狀態發生變化時,能夠自動通知其他關聯物件,自動重新整理物件狀態。observer模式提供給關聯物件一種同步通訊的手段,使某個物件與依賴它的其他物件之間保持狀態同 using namespace std class assist 抽...