設計模式 工廠方法FactoryMethod

2021-09-06 18:54:53 字數 1891 閱讀 2802

前言:【模式總覽】——————————by xingoo

工廠方法在mvc中應用的很廣泛。

工廠方法意在分離產品與建立的兩個層次,使使用者在乙個工廠池中可以選擇自己想要使用的產品,而忽略其建立過程。

簡單來說,就像乙個大型的工廠,對於消費者來說,只需要知道都有什麼工廠的產品生產出來,而不需要關心工廠是如何生產產品的。對於工廠來說,必須知道所有的產品的製造方法。

creator 建立工廠的介面

concretecreator 具體的產品建立者

product 產品的介面

concreteproduct 具體的產品

1 當乙個類不知道它所必須建立的物件的類的時候。

2 當乙個類希望由他的子類來制定它所建立的物件的時候

3 當類建立物件的職責委託給多個幫助子類中的某乙個,並且希望進行一些資訊的區域性初始化的時候。

工廠方法需要乙個工廠介面,提供了基本的類模式,和乙個產品介面,提供基本的方法。

1

inte***ce

creator

4inte***ce

product

接下來就是具體的工廠方法,可以建立不同的產品。

1

class concretecreator1 implements

creator5}

6class concretecreator2 implements

creator

10 }

其次需要不同的產品。

1

class concreteproduct1 implements

product5}

6class concreteproduct2 implements

product

10 }

使用方法,大致如下

目前的生活,是一種快餐的生活。有時候不想做飯,去飯店也等不及,肯德基、麥當勞、德克士就成為了一種很方便的方式。

我們去肯德基,通常會吃點漢堡,點點可樂,不需要知道這些東西是怎麼做出來的,直接點,拿到吃,簡單方便,這就是生活中的快餐工廠。

通過乙個makechoice方法,可以統一的進行選擇。

inte***ce

kfc

inte***ce

client

class bread_menu implements

kfc

}class cola_menu implements

kfc

}class client_bread implements

client

}class client_cola implements

client

}public

class

factorymethodtest

else

}public

static

void

main(string args)

}

執行如下

-------------想吃麵包-----------------顧客 吃麵包

-------------想喝可樂-----------------顧客 喝可樂

設計模式 工廠模式(Factory)

除了使用new關鍵字以外,還有更多製造物件的方法。new意味著在例項化乙個具體的類,所以物件的方法是準確的實現,而非抽象的方法定義。因此這樣一來 將會缺乏彈性。我們針對介面程式設計,可以隔離掉以後系統中可能發生的一大堆改變,如果 針對介面來寫,那麼對於乙個方法的實現將會是多種多樣的。當 使用大量具體...

設計模式 簡單工廠 工廠方法 抽象工廠方法模式

簡介 工廠方法模式分為 簡單工廠模式 工廠方法模式 抽象工廠方法模式 簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法 static factory method 模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的實 uml圖示例 public class ...

設計模式 工廠方法

設計模式 工廠方法 工廠方法與抽象方法 面向介面程式設計可以提高 的靈活性 可以橫向擴充 切忌不能使用面向實現的程式設計,這樣做不便於以後業務的擴充和 的靈活性。工廠方法 就是把 new class 的過程交給 factory來做.構造類的細節不需要我們知道。比如 構造乙個 list 我們可以這樣寫...