工廠方法模式 和 抽象工廠模式

2022-02-26 23:00:21 字數 3003 閱讀 6592

1.簡介

相比於簡單工廠,工廠方法是使用乙個工廠類去建立乙個物件

irace介面和human類、ne類都和上文簡單工廠一樣

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

factorymethod

}

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

factorymethod

}}

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

factorymethod

}}

然後我們新增乙個human工廠humanfactory,用這個類來例項化human

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

factorymethod

}}

同理新增乙個ne工廠nefactory

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

factorymethod

}}

program:

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

factorymethod

}}

從這裡看,我們可能會覺得工廠方法只會增加**量,沒有什麼實際意義,不過在某些場合還是非常適合的

比如:我們需要在例項化之前執行一些操作

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

factorymethod

}}

2.用簡單工廠方法管理工廠方法的工廠類

我們也可以結合簡單工廠和工廠方法

使用簡單工廠方法對工廠類humanfactory進行管理,對program解耦

新增乙個介面

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

factorymethod

}

使humanfactory和nefactory繼承這個介面

然後新增乙個簡單工廠類

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

factorymethod}}

public

enum

factorytype

}

program:

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

factorymethod

}}

像這種把對多個工廠從細節**變成抽象**的方法,也叫做抽象工廠模式

要進一步解耦,可以使用反射,請參考上一章

工廠方法模式和抽象工廠模式

工廠模式是 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,使乙個類的例項化延遲到子類。它有個特點,就是通常工廠的類層次與產品的類層次幾乎是一樣的樹。如果說工廠是你的影子,你就是產品了。在你平時未用到模式的時候,你需要什麼就new乙個,這種情況就好比你躺在地上,人影合一了。那什麼時候需要工廠模...

抽象工廠模式和工廠方法模式

抽象工廠模式是所有形態的工廠模式中最為抽象和最具一般性的一種形態,指的是當有多個抽象角色時使用的一種設計模式,即通過介面和實現類。在不必指定具體產品的情況下,建立多個產品族產品物件。依據的是裡式替換原則。即抽象工廠模式的介面會有不同的實現類 例項 定義兩個類 public class user為類建...

抽象工廠模式(工廠方法模式)

工廠方法模式是在簡單工廠模式的基礎之上將建立具體產品類的工廠進一步抽象,使產品的建立不依賴具體的工廠,只需要依賴抽象工廠,後續如果要新增新的產品和工廠,只需要實現該抽象工廠的介面即可。建立抽象工廠和產品 public inte ce productfactory public inte ce pro...