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

2021-10-06 14:06:16 字數 1547 閱讀 7569

設計模式一:簡單工廠模式

說到簡單工廠模式,說明此模式是用來生產的,也就是用來建立例項,我們平常的例項化就是new乙個物件,可如果要生產多個不同的物件應該怎麼辦?我們對例項化物件進行管理,也就是說想要乙個例項,不需要在乎這個例項是如何產生的,傳入乙個型別/特定字串/特定int 等,就能收到乙個標識該型別的物件。

以女媧造人來舉例,有黃種人,黑種人,白種人三個型別,這三種都是人,那我們先寫乙個人類介面ihuman 也可以使用基類,表現效果一樣,三類人都 有speak  getcolor 的方法

using system.collections;

using system.collections.generic;

using unityengine;

namespace 簡單工廠

public class yellowman : ihuman

public void speak()

}public class whiteman : ihuman

public void speak()

}public class blackman : ihuman

public void speak()}}

三種人的類已經建立好了,要開始進行工廠生產了,建立乙個工廠類factory,傳入約定好的字串/int/ 型別,即可以開始生產了,這裡用乙個靜態的生產方法來進行生產,所以簡單工廠模式又被稱為靜態生產模式。什麼?不想用靜態,還可以進行再次封裝下這個工廠,把工廠抽象出來?那就是工廠模式和抽象工廠模式了,下章再說。。。

namespace 簡單工廠

return null;}}

}

現在我們要做個測試了,要去生產加工人類了,只需要傳入想生產的型別,即可返回你所需要的的例項

using system.collections;

using system.collections.generic;

using unityengine;

namespace 簡單工廠}}

將test.cs 指令碼扔到場景中,執行看看吧

總結: 簡單工廠模式就是簡單。讓上層**不需要處理生產流程,也就是說,使用者只要結果,不要過程,過程由工廠進行初始化。

優點(1)簡單工廠包含必要的判斷邏輯,簡單工廠實現了物件的建立和使用的分離。

(2)客戶端無需知道所建立的具體產品類的類名,只需要具體產品類對應的引數即可!

(3)在不修改任何客戶端**的情況下更換和增加新的具體產品類,在一定程度上提高了系統的靈活性

缺點(1)工廠類的職責過重,從類圖中可以看出簡單工廠中包含加減乘除的邏輯判斷語句,它一旦有問題,整個系統都要出問題

(2)在新增新的類的時候,例如我新增了棕色人,那麼系統中的簡單工廠類就要修改,違反了開放——封閉原則!這樣及其不利於系統的擴充套件和維護!

(3)簡單工廠的靜態方法,使得工廠角色無法形成基於繼承的等級結構!

工廠設計模式一 簡單工廠模式

工廠設計模式實現了建立者和呼叫者的分離。類別 1.簡單工廠模式 2.工廠方法模式 3.抽象工廠模式 遵循的設計原則 1.ocp 開閉原則,open closed principle 乙個軟體的實體應當那個對擴充套件開放,對修改關閉 2.dip 依賴倒置原則,dependence inversion ...

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

工廠設計模式可分為 簡單工廠模式 工廠方法模式 抽象工廠模式 第一篇我們來聊聊 理解 假設某些例項具有相同的方法,可以根據引數的不同返回不同的例項,被建立的例項通常都具有共同的父類,那麼可以考慮使用簡單設計模式來實現。例如可以實用簡單工廠模式設計乙個可以建立不同幾何形狀 如圓形 方形和三角形等 的繪...

設計模式 一 工廠模式 簡單工廠

以前總覺得設計模式純屬扯淡,浪費精力,10 能搞定的事情非要寫那麼多的介面或者實現類.為什麼要用設計模式,開發有乙個重要的原則 對修改關閉,對擴充套件開放.因為如果把 全部都雜糅到乙個類中,第一 復用性太差,擴充套件性不強.第二,修改起來一改巨改,改動即意味著要增加測試人員工作量,且引入修改bug如...