1 簡單工廠模式

2021-10-06 23:22:09 字數 2223 閱讀 1829

簡單工廠模式讓使用者在使用物件時無需關心物件的建立細節,從而降低系統的耦合度,讓設計方案更易於修改和擴充套件。

1.先用人話講一下什麼是簡單工廠模式

顧客只需要知道香蕉這個名字(僅僅是名字,不是真正的香蕉),水果農場(factory)就能給出香蕉這個水果實體(能吃到嘴的香蕉,product)。

簡單工廠的定義:定義乙個工廠類,它可以根據引數的不同返回不同類的例項,被建立的例項通常都具有相同的父類

由於建立例項的方法通常都是靜態的,因此簡單工廠模式又被成為靜態工廠方法模式,它是一種類建立型模式。

簡單工廠模式的要點在於,當使用者需要什麼,只需要傳入乙個引數就可以得到對應的物件,不需要知道其中建立的細節。

2.簡單工廠模式結構

1)簡單工廠模式核心是工廠類的設計,包含三個角色。

==1)factory(工廠角色):

^1. 主要負責建立所有產品例項的內部邏輯

^2. 可以被外界直接呼叫,建立所需的產品物件

^3. 提供靜態的工廠方法factorymethod(),返回型別為抽象產品型別product

==2)抽象產品角色:

^1. 它是工廠類建立的所有物件的父類,封裝了不同產品的共有方法

==3)具體產品角色:

^1. 它是最終的建立目標,每個具體產品角色都繼承了抽象產品角色,需要實現在抽象產品中宣告的抽象方法

3.簡單工廠模式的實現

1)抽象產品類

package controller.******factorymodule;

/** *抽象產品

*/public abstract class product

//宣告抽象業務方法

public abstract void methoddiff();

}

2)具體產品類a 

package controller.******factorymodule;

public class concreteproducta extends product

}

3)具體產品類b

package controller.******factorymodule;

public class concreteproductb extends product

}

4)工廠類

package controller.******factorymodule;

public class factory else if(args.equals("b"))

return product;}}

5)主類呼叫工廠類

package controller.******factorymodule;

public class client

}

4.建立物件的幾種方法

1)使用new關鍵字直接建立

==1)方便,但是不好。它把對物件的建立和使用放在了一起。如果在需要新增方法就需要改原始碼

2)通過反射機制建立

3)通過轉殖方法建立

4)通過工廠類建立

==1)相比new方法,a類和b類僅僅存在a建立b,或者a使用b,不會同時存在這兩種關係

==2)防止用來例項化乙個類的資料和**在多個類中到處使用

==3)乙個類可以有多個建構函式,滿足不同的情況

5.簡單工廠模式的簡化

可以將抽象產品類和工廠類合併,將靜態工廠方法移到抽象產品類中

6.簡單工廠模式的優缺點

優:1)實現物件建立和使用的分離

2)對於使用者更友好

3)引入配置檔案,可以不用修改**更新產品類

缺:1)工廠類職責過重,一旦不能正常工作,整個系統都要受到影響

2)會增加類的數量,增加系統複雜度

3)一旦新增新產品,就需要修改工廠邏輯,不利於維護和拓展

4)因為使用靜態工廠方法,導致無法形成基於繼承的等級結構

7.簡單工廠模式的試用環境

1)建立物件較少

2)客戶端只知道傳入工廠類的引數嗎,不關心如何建立物件

1 簡單工廠模式

工廠類61 到底要例項化誰,將來會不會增加例項化的物件,比如增加開跟運算,這是很容易變化的地方,62 應該考慮用乙個單獨的類來做這個創造例項的過程,這就是工廠 63template class t 64class operationfactory 6574 else if operate 75 78...

1 簡單工廠模式

一 做乙個商場收銀軟體 二 code using system namespace web.策略模式 正常收費子類 class cashnoraml cashsuper 打折收費子類 public class cashrebate cashsuper 返回折扣 原價 public override ...

1 簡單工廠模式

簡單工廠模式 factory pattern 又稱為靜態工廠方法 static factory method 模式,它屬於類建立型模式。在簡單工廠模式中,可以根據引數的不同返回不同類的例項。簡單工廠模式專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。當我們需要使用乙個物件時,...