C 簡單工廠模式和單列設計模式潛要解析

2022-02-12 04:07:47 字數 1765 閱讀 5054

簡單工廠設計模式,又叫做靜態工廠方法(static factory method)模式,就是由乙個工廠類根據傳入的參量決定建立出哪一種產品類的例項。

簡單工廠模式是工廠模式家族中最簡單實用的模式。簡單工廠設計模式是針對於建立類的物件的。

一般,簡單工廠涉及到三個 角色/類:

一、工廠類:工廠類是簡單工廠的核心,通過工廠類可以分別出的客戶需求,在呼叫其子類。

二、抽象產品類:這個類是由工廠方法模式所建立的物件的父類,一般由介面和抽象類實現。

三、具體產品類:工廠方法模式所建立的任何物件都是這個角色的例項,由具體類實現。

下面我們用簡單工廠設計乙個訂餐器:如圖

首先,定義乙個pizza類,該類為抽象類,用於儲存客戶點選獲取到的pizza型別,**如下:

1

namespace

day08_0100.簡單工廠

27 }

其次,在定義兩個string類,分別裝pizza的種類,並用return返回值,**如下:

1

namespace

day08_0100.簡單工廠29

}10 }

1

namespace

day08_0100.簡單工廠29

}10 }

之後,是最為關鍵的,就是建立工廠類(pizzafactory),該類包含乙個靜態的方法,該方法的返回值型別必須是抽象類;

工廠類根據傳入的引數決定建立出哪一種產品類的例項。

示例**:

1

namespace

day08_0100.簡單工廠217

return

pizza;18}

19}20 }

最後是在窗體中呼叫,在button控制項click事件下寫如下**:

1

private

void btnok_click(object

sender, eventargs e)

211 }

如此,用簡單工廠訂購pizza已經完成。

單列設計模式

單列模式:顧名思義就是乙個物件只能初始化一次;

作用:減少開闢記憶體空間,節約記憶體開銷

1

class

program2

10 }

因為a物件在記憶體堆中開闢了a1和a2兩個記憶體空間 所以他們的記憶體位址不可能相同。

那麼,怎樣才能開闢乙個空間,而不是兩個或者多個呢?那就需要使用到單列設計模式了

下面是a類的定義:

1

public

classa2

8public

static

a getsingleinstance()914

return

a;15

} 16 }

在執行下列**:

1

class

program2

13 }

將構造方法設為私有方法,不能new。

C 設計模式 單列模式

單例模式是設計模式中最簡單和最容易理解的模式,需要注意的地方只有乙個,第一次例項化的時候要確保是執行緒安全即可。第一種實現 多執行緒不安全單利 public class single public static single getinstance 第二種實現 多執行緒安全單利 每次要加鎖浪費資源 ...

單列模式 和 操作XML方法 和 簡單工廠模式

一.單列模式 1 首先,該singleton的建構函式必須是私有的,以保證客戶程式不會通過new 操作產生乙個例項,達到實現單例的目的 2 因為靜態變數的生命週期跟整個應用程式的生命週期是一樣的,所以可以定義乙個私有的靜態全域性變數instance來儲存該類的唯一例項 3 必須提供乙個全域性函式訪問...

設計模式 簡單工廠模式(C )

一.簡單工廠模式又稱靜態工廠方法模式 static factory method 它不是gof 所講的23種設計模式之一,但是它卻是我們在編碼過程中經常使用的方法之一。1.靜態工廠方法統一管理物件的建立。靜態工廠方法通過傳入的引數判斷決定建立哪乙個產品的例項,封裝了物件的建立,客戶端只管消費,實現了...