設計模式之工廠模式

2021-08-19 21:36:53 字數 1336 閱讀 2045

1:簡介

簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法(static factory method)模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的乙個特殊實現。

2:簡單工廠

還記得最開始寫專案的時候, 乙個tablayout對應七八個fragment,還記得當時就是需要哪個fragment就new乙個的年代,後面了解到工廠設計模式。就對自己的專案做了一下改變,大概就變成了這樣的模式,這裡形象的用動物來代替了一下。

public

inte***ce

animal

public

static animal createanimal

(int tab)

return aniaml;

}

3:工廠方法
然後在每次用的時候,就只需要factoryanimal.createanimal(int)傳入對應的animal就好了,可是有一天該需求了,又需要新增乙個animal,那我們不是還得來這裡新增乙個case,然後**又需要改動,這肯定是不能接受的。那麼來試試反射怎麼樣。

public

t createproduct

(classclz)

catch (instantiationexception e) catch (illegalacces***ception e) catch (classnotfoundexception e)

return (t) animal;

}

好像還不錯的感覺,至少我不用管你裡面做了什麼,我只需要在呼叫的時候傳入乙個animal的實現class就好了。

4:抽象工廠

顧名思義就是把工廠去抽象化,那我們來看下抽象之後的工廠方法

public

inte***ce

ifactory

public

class

catfactory

implements

ifactory

}public

class

catimplements

ianimal

}public

class

client

}

可以發現我們在呼叫層,就什麼都不用傳了,也許會說多了這麼多的**,但是如何哪一天需求變了,我們要寫乙個「鳥叫」,那我們只需要重新寫乙個實現ifactory就可以,客戶端的**非常的少,改動也非常的少,可以感覺還是非常的爽的。

設計模式 設計模式之工廠模式

工廠方法模式 建立模式 使用場景?作用?形態?場景 大量類似的實體類 要建立的實體類都是同一本質的東西 披薩 有部分類似功能 準備 烘烤 切法 實現方式不一樣 準備的材料不同 烘烤時間不同 切法不同 將繁瑣複雜的建立類的過程聚集在一起,有序清晰 把具體例項化的過程從客戶 中抽離 作用 1 將建立物件...

c 設計模式 之 工廠模式之 工廠模式

1 uml類圖 實現和依賴關係 實現 sportfactory jeepfactory hatchbackfactory 實現 ifactory 介面 sportcar jeepcar hatchbackcar 實現 icar 介面 依賴 ifactory 依賴 icar sportfactory ...

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

定義 由乙個工廠物件 工廠類 來指定建立某乙個產品類的例項。使用場景 客戶端只需傳入指定的引數即可,工廠類負責建立的物件較少 因為指定了傳入的引數 介面類 本想用iphone命名的,見諒 public inte ce phone實現介面類 public class huaweiphone imple...