1. 程式人生 > >單例模式(singleton),工廠方法模式(factory),門面模式(facade)

單例模式(singleton),工廠方法模式(factory),門面模式(facade)

CEmperor,需要單例的類

說明:很多大臣拜見的皇帝,只有一個。體現在面向物件方面,CEmperor定義一個靜態指標,和一個靜態函式,私有化建構函式、解構函式、建構函式複製、過載賦值語句。

注意:執行緒安全,採用互斥體的方式實現。

Public class Singleton{
Private Singleton(){};
Public staticclass Singleton1{
Private staticfinal Singleton instance = new Singleton();
}
Public static Singleton getInstance(){
Return Singleton1.instance;
}
}

單例模式比較簡單,但在專案中使用的時候,需要明確只調用CEmperor的GetInstance函式來獲取例項

工廠方法模式:工廠方法模式的意義是定義一個建立產品物件的工廠介面,將實際建立工作推遲到子類當中。核心工廠類不再負責產品的建立,這樣核心類成為一個抽象工廠角色, 僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得工廠方法模式可以使系統在不修改具體工廠角色的情況下引進新的產品。 工廠方法屬於建立型模式,適合於產品不太多的情況。產品如果很多,則需要用抽象工廠來實現。
門面模式: Facade門面模式,也是比較常用的一種模式,基本上所有軟體系統中都會用到。GOF在《設計模式》一書中給出如下定義:為子系統中的一組介面提供一個一致的介面,Facade
模式定義了一個高層介面,這個介面使得這一子系統更加容易使用。簡單說,就是將複雜的邏輯封裝起來,對外公開簡單的介面,由客戶程式呼叫。

上面的圖仍然只是類圖而已,用於幫助理解程式碼中類之間的關係,而不是模式的抽象類圖。CModenPostOffice封裝了複雜的處理邏輯,對外只有SendLetter這個函式介面。使客戶程式容易瞭解到想要做什麼,應該告訴郵局什麼內容,郵局才能正確的工作