工廠模式:定義了乙個建立物件的介面,但由子類決定要實現例項化的類是哪乙個,工廠方法讓類把例項化推遲到子類。
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 抽...