設計模式之工廠方法

2021-09-12 16:14:13 字數 1430 閱讀 9887

定義

工廠方法模式,又稱工廠模式、多型工廠模式和虛擬構造器模式,通過定義工廠父類負責定義建立物件的公共介面,而子類則負責生成具體的物件。

主要作用:

將類的例項化(具體產品的建立)延遲到工廠類的子類(具體工廠)中完成,即由子類來決定應該例項化(建立)哪乙個類。

解決的問題

工廠一旦需要生產新產品就需要修改工廠類的方法邏輯,違背了「開放 - 關 閉原則

使用步驟:

建立抽象工廠類,定義具體工廠的公共介面;

建立抽象產品類,定義具體產品的公共介面;

建立具體產品類(繼承抽象產品類)定義生產的具體產品 

4.建立具體的工廠類(繼承抽象工廠類),定義建立對應具體產品例項方法 

5.外界通過呼叫具體工廠類的方法,從而建立不同具體產品類的例項 

例項講解

使用步驟 

步驟1: 建立 抽象工廠類 ,定義具體工廠的公共介面

public abstract class factory
步驟2:建立具體工廠

// 共產a類 -----生產a類產品

public class factorya extends factory

}

//生產b類 ----生產b類產品

public class factoryb extends factory

}

步驟3:建立抽象產品

//建立抽象產品類

public abstract class product

步驟四:建立具體產品

//具體產品a類

public class producta extends product

}

//具體產品b類

public class productb extends product

}

5.呼叫

//        客戶要產品a

factorya factorya = new factorya();

factorya.manufacture().show();

// 客戶要產品b

factoryb factoryb = new factoryb();

factoryb.manufacture().show();

輸出結果

2019-03-15 18:04:31.620 22089-22089/com.example.openingdemo d/tag: 生產出了產品a

2019-03-15 18:04:31.621 22089-22089/com.example.openingdemo d/tag: 生產出了產品b

設計模式之工廠方法

工廠方法是在簡單工廠的基礎上的進一步抽象,在簡單工廠中,所有的物件都是通過乙個工廠來建立,在工廠方法中,每個物件都有特定的工廠來建立。抽象介面 車 package com.yf.designpattern.factorymethod public inte ce car 具體實現類 寶馬和賓士 pa...

設計模式之工廠方法

言歸正傳,後來 我們開始了重頭戲 設計模式 工廠三姐妹,因為十三期的師弟沒有接觸過這些知識二來因為自己學藝不精,所以當時講得有些吃力,這就尷尬了 是吧 為了挽回一點顏面,當下決定回去寫一篇部落格,但是 經常說 但是 不好 不過因為因為一直奮戰在itoo 這個總結沒有及時地動手去做,不過現在有時間了 ...

設計模式之工廠方法

軟體架構師需要關係設計模式 當有提示時 客戶端最常用的是彈出message對話方塊 服務端最常用的是寫日誌檔案。下面的例子假定五個開發組參與 核心邏輯組 class ishow class iglobe void init iglobe globe,uint uid 服務端業務邏輯組 namespa...