設計模式 建立型 工廠 簡單工廠模式

2021-08-26 18:42:29 字數 1415 閱讀 5229

動態決定哪個類被例項化,不必事先知道哪個類要被例項化!

三、舉例:qq裡面常用發表情的:

1、 表情 b=new smile();//這種應該是很熟悉的建立方式

2、表情 b=表情工廠.createbiaoqing(「表情內容」);

四、角色與結構:

工廠類角色(creator):bqfctory,在creat方法下建立產品物件(smile,cry);

抽象產品角色(product):biaoqing;定義簡單工廠建立的物件的父類或它們共同擁有的介面。可以是乙個類、抽象                     類或介面。(我這裡是乙個介面);

具體產品角色concreateproduct:smile,cry;工廠具體產出的物件。

五、根據**分析:

biaoqing介面,僅需定義所需要的方法 

package ******fctory;

public inte***ce biaoqing

smile類實現biaoqing中的方法

package ******fctory;

public class smile implements biaoqing

}

cry類實現biaoqing中的方法

package ******fctory;

public class cry implements biaoqing

}

bqfctory的create方法的返回型別是biaoqing,然後根據括號內的內容返回不同的型別

package ******fctory;

public class bqfctory else if(type.equals("cry"))else

return null;

}}

測試:

package ******fctory;

public class test

}

結果:smile的顯示方法

cry的顯示方法

我們反過來,從主程式開始看就很好理解了,首先呼叫bqfctory裡的靜態方法create,根據方法提供的type返回所需要的型別,然後呼叫相應的方法!

六、優點:

1、不必事先知道哪個類要被例項化

2、只需在需要的地方呼叫即可,無需像 「 表情 b=new smile() "這樣重新例項化乙個物件,方便,同時也節省了記憶體!

七、缺點:

1、由於所需要的具體產品待定,如果很多的話就要重新新增新的類,並且要在工廠類(此例中的bqfctory類)中新增判斷語句,擴充套件比較麻煩,好像違背了oop的開閉原則吧!所以最好是用在所需建立的物件比較少的情形上!

就這麼點理解了!

設計模式 建立型 簡單工廠模式

建立型模式中工廠模式有三兄弟,先從簡單工廠講起。工廠模式中包含了產品與工廠兩個物件,其中產品是是乙個個具體的物件,而工廠負責生產這些產品。例如現在我們的需求是有兩個食品要在食品廠加工。兩個食品分別叫做麵包和巧克力,要在食品廠加工。通過需求分析出應該有如下幾個類,麵包類 巧克力類 食品加工廠類。由於麵...

簡單工廠 抽象工廠 工廠 建立型設計模式

簡單工廠 了解 在建立乙個物件時不向客戶暴露內部細節,並提供乙個建立物件的通用介面 相當於乙個工廠有多種產品,建立在類中,當客戶使用時只需要知道產品類對應引數即可 原理 簡單工廠把例項化的操作單獨放到乙個類中,這個類就成為簡單工廠類,讓簡單工廠類來決定用哪個具體子類來例項化 這樣做能把客戶類和具體子...

設計模式 建立型 簡單工廠

之前學習了設計模式的原則,下面我們正式學習這些模式。設計模式分為了三個大類分別是建立型模式 結構型模式 和行為型模式。首先建立型模式 顧名思義他是用來描述如何建立物件的 建立型模型的分類 簡單工廠模式 抽象工程模式,單例模式 原型模式 建造者模式。簡單工廠 提供了專門的工廠類用於建立物件 將物件的建...