工廠方法模式

2021-08-24 19:53:58 字數 2692 閱讀 5364

工廠方法模式:

定義:工廠方法模式是用於建立物件的介面,讓子類決定例項化哪乙個類,factorymethods是乙個類的例項化延遲到了其子類。和簡單工廠模式相比較的話,使得工廠的壓力減輕,分散到了其類(介面或者抽象類)的實現類上。

詳細解釋: 

工廠方法模式是對簡單工廠模式的改進:將物件的建立交給了子類去建立。示例**如下

需要建立的產品抽象類如下:

package org.bestupon.factorymethod.product;

/** * 具有相同屬性的同一類產品

* 比如:汽車,都具有四個輪子,等等的特性

* @author bestupon

* */

public inte***ce product

實現了product的兩個產品類如下:

package org.bestupon.factorymethod.product;

public class product1 implements product

@override

public void printtheproductname()

}

package org.bestupon.factorymethod.product;

public class product2 implements product

@override

public void printtheproductname()

}

核心工廠類(factorymethod ):生產產品的抽象。

package org.bestupon.factorymethod.factory;

import org.bestupon.factorymethod.product.product;

public inte***ce factorymethod

實現了factorymethod 的兩個具體負責生產產品的類:

product1factory負責生產product1.product2factory負責生產product2.

package org.bestupon.factorymethod.factory;

import org.bestupon.factorymethod.product.product;

import org.bestupon.factorymethod.product.product1;

public class product1factory implements factorymethod

}

package org.bestupon.factorymethod.factory;

import org.bestupon.factorymethod.product.product;

import org.bestupon.factorymethod.product.product2;

public class product2factory implements factorymethod

}

客戶端的人物還是負責呼叫,不去具體的建立,把建立任務交給了工廠區建立。

package org.bestupon.factorymethod.client;

import org.bestupon.factorymethod.factory.product1factory;

import org.bestupon.factorymethod.factory.product2factory;

import org.bestupon.factorymethod.product.product;

/** * 工廠方法模式;工廠分工明確。

* 生產產品一的工廠只生產產品一,其他的產品都不生產

* 缺點:如果產品很多,要構建很多的產品生產工廠。不方便擴充套件,重用性差

* 但是較簡單工廠模式比較,分工明確有益於**的維護

* @author bestupon

* */

public class client

}

工廠方法模式的優缺點分析:

1、優點:分工明確,各司其職,精益求精。

客戶端不再建立物件,而是把建立物件的職責交給了具體的工廠去建立;

客戶端只負責家呼叫。

將工廠設計成乙個介面,其他分工明確的工廠去實現這個介面,以維護。

2、缺點:如果產品量增加,分工更加明確的話,需要增加額外的**量。

3、使用時機:

1> 客戶端需要建立物件,但是數量不多,要求比較細微的的情況下,可以考慮使用工廠方法模式。

2> 乙個類不明確他必須建立的是確定的那種物件的時候。

3> 乙個類的不想自己去建立物件,而是希望他的實現類去建立物件的時候。

4> 乙個類的子類有一群,並且將物件建立的任務委託給其中的乙個幫助類的時候,並且希望這個幫助子類是**這一區域性資訊的時候。

4、所能達到的效果:

·用工廠方法在類中建立物件比直接建立物件更加靈活,子類可以提供物件的擴充套件版本。

·連線平行的類層次,將哪些類應一同工作的資訊區域性化。

附:能直接執行的**. 

工廠方法模式 工廠方法模式

工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...

工廠方法模式 工廠方法模式 二

工廠方法模式是對簡單工廠的進一步抽象和封裝,需要新的類物件時不需要對既有工廠類進行修改,而是增加新的工廠類。工程類可以使用模版進一步封裝,由編譯器來生成 從而減少 編寫工作量。工廠方法的 c 實現01part產品抽象基類class animal virtual void show 0 02part產...

工廠方法模式(一) 簡單工廠方法模式

ps 第二篇學習部落格,堅持就是勝利。繼續設計模式的學習,記錄工廠模式,加深自己的理解。基本結構 abstractproduct 用來定義基本的商品的抽象 public abstract class abstractphoneproduct 用來實現抽象商品,生成各種商品 public class ...