建立型設計模式(2) 簡單工廠模式

2021-06-13 16:45:55 字數 970 閱讀 5162

動機

簡單工廠模式是抽象工廠和工廠方法的基礎和初步實現。

目的

1. 不向客戶透露物件例項化的細節。

2. 通過通用介面建立物件。

實現

實現非常簡單:

1. client需要product時,不使用new來建立,而是提供 product 描述給factory,讓 factory 提供乙個新的 product 。

2. factory例項化乙個product給client。

3. client使用抽象product,而不關心product的具體實現。

例項

1. 繪製形狀的繪圖程式。形狀就是product介面,三角形這些是concrete product,我們可以建立乙個工廠,然後根據客戶的描述建立對於的產品。不過新增新的形狀時,我們需要修改工廠類。

具體問題和實現

1. 新增新產品時,需要修改工廠。

public class productfactory

...}

一般我們通過if語句判斷產品描述,並例項化不同的產品,有新的產品時,我們需要增加新的判斷。通過抽象工廠模式可以解決這個問題。

總結

1. 當你確實需要工廠模式時才使用,不然只是增加程式的複雜度,比如多種物件有相似的基本型別時,可以考慮使用簡單工廠模式來統一建立物件。

2. 簡單工廠有比較多的判斷分支語句,違反了開閉原則的對修改關閉的原則,所以,明智的做法是,對一些固定和簡單程式使用簡單工廠模式,對一些複雜和需要經常擴充套件的程式,使用抽象工廠模式或者工廠方法模式。

參考:

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

package cn.riversky.create.factory 簡單工廠模式 定義乙個工廠類,根據傳入的引數構造生成不同的例項。一般通過靜態方法的方式進行構建。因此也稱為靜態工廠方法模式 這裡設計學生抽象類,和兩個實現類 班長類,助教類 和工廠類 簡單工廠 author riversky e ...

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

動態決定哪個類被例項化,不必事先知道哪個類要被例項化!三 舉例 qq裡面常用發表情的 1 表情 b new smile 這種應該是很熟悉的建立方式 2 表情 b 表情工廠.createbiaoqing 表情內容 四 角色與結構 工廠類角色 creator bqfctory,在creat方法下建立產品...

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

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