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

2021-10-05 01:42:57 字數 2623 閱讀 6489

簡單工廠模式又稱之為靜態工廠方法,屬於建立型模式。在簡單工廠模式中,可以根據傳遞的引數不同,返回不同類的例項。簡單工廠模式定義了乙個類,這個類專門用於建立其他類的例項,這些被建立的類都有乙個共同的父類。

1. factory:工廠角色。專門用於建立例項類的工廠,提供乙個方法,該方法根據傳遞的引數不同返回不同類的具體例項。

2. product:抽象產品角色。為所有產品的父類。

3. concreteproduct:具體的產品角色。

1、product 抽象產品類

/**

* @description product 抽象產品類

* @author yanyuan

* @date 18:27 2020/4/14

* @version 1.0

**/public

inte***ce

phone

2、concrete product 具體產品類

import lombok.extern.slf4j.slf4j;

/** * @description 華為手機

* @author yanyuan

* @date 18:30 2020/4/14

* @version 1.0

**/@slf4j

public

class

huaweiphone

implements

phone

@override

public

void

call()

}

/**

* @description concrete product 具體產品類

* @author yanyuan

* @date 18:28 2020/4/14

* @version 1.0

**/@slf4j

public

class

iphone

implements

phone

@override

public

void

call()

}

3、factory 工廠角色類

import lombok.extern.slf4j.slf4j;

/** * @description factory 工廠角色類

* @author yanyuan

* @date 22:06 2020/4/14

* @version 1.0

**/@slf4j

public

class

******factory

return phone;

}}

4、測試類

/**

* @description 簡單工廠模式測試類

* @author yanyuan

* @date 22:10 2020/4/14

* @version 1.0

**/public

class

test

}

輸出結果

22:16:19.325 [main] info com.yanyuan.gof.build.******factory.v2.huaweiphone - 華為手機製作完成

22:16:19.343 [main] info com.yanyuan.gof.build.******factory.v2.huaweiphone - 華為手機撥打**

22:16:19.344 [main] info com.yanyuan.gof.build.******factory.v2.iphone - 製作iphone手機

22:16:19.344 [main] info com.yanyuan.gof.build.******factory.v2.iphone - iphone手機撥打**

實現了對責任的分隔,提供了專門工廠類建立物件。

使用者無需知道具體產品名。

通過配置檔案方式,可以在不修改客戶端(消費端)**情況下變更/增加新產品,在一定程式上提高了系統的靈活性。

由於工廠類集中了所以產品建立邏輯,一旦不能正常工作,整個系統受影響。

使用簡單工廠模式將增加系統類的個數,在一定程度上增加了系統的複雜度和理解。

系統擴充套件困難,一旦新增了新產品就不得不修改工廠邏輯,在產品型別較多時,有可能造成工廠邏輯過於複雜,不利於系統的擴充套件和維護。

簡單工廠模式的要點就在於當你需要什麼,只需要知道正確引數,就可以獲取你所需要的物件,無需知道其建立細節。

簡單工廠模式最大的優點在於實現物件的建立和物件的分離,但是如果產品過多時,會導致工廠**複雜。

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

案例 黑棗轉殖公司是專門批量生產轉殖狗的一家企業。當轉殖出乙隻黑狗的實現 如下 實現 class doggener if color red class blackdog class reddog doggen new doggener doggen create black 分析ooa 軟體工程師...

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

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

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

工廠模式可以分為 簡單工廠模式 普通工廠模式 靜態工廠模式 抽象工廠模式 簡單工廠模式 就是如何去例項化物件的問題,對於很容易變化的問題,應該考慮用乙個單獨的類來做這個創造例項的過程,這個單獨的類就是工廠 例子 通過簡單工廠建立各種圖形的實現過程 簡單工廠模式建立步驟 建立乙個介面 例 圖形介面 建...