工廠方法模式:
定義:工廠方法模式是用於建立物件的介面,讓子類決定例項化哪乙個類,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 ...