摘要:簡介抽象工廠是一種創建型模式,它提代一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。類圖是聲明了創建抽象產品的抽象工廠,是具體的工廠,實現了創建具體產品。
1. 簡介
??抽象工廠是一種創建型模式,它提代一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。抽象工廠允許調用者使用抽象的接口創建一組相關的產口,而不需要關心它們具體的產品,這樣就從具體的產口中解耦出來,依賴抽象而不是依賴具體類。
2. UML類圖??AbstractFactory是聲明了創建抽象產品的抽象工廠,ConcreteFactory是具體的工廠,實現了創建具體產品。AbstractProduct是一類產品的抽象接口,Product是具體的產品。
3. 實例抽象產品A
public interface AbstractProductA { void showProductA(); }
具體產品A
public class ProductA1 implements AbstractProductA { public void showProductA() { System.out.println("ProductA1"); } } public class ProductA2 implements AbstractProductB { public void showProductA() { System.out.println("ProductA2"); } }
抽象產品B
public interface AbstractProductB { void showProductB(); }
具體產品B
public class ProductB1 implements AbstractProductB { public void showProductB() { System.out.println("ProductB1"); } } public class ProductB2 implements AbstractProductB { public void showProductB() { System.out.println("ProductB2"); } }
抽象工廠
public interface AbstractFactory { AbstractProductA createProductA(); AbstractProductB createProductB(); }
具體工廠
public class Factory1 implements AbstractFactory { public AbstractProductA createProductA() { return new ProductA1(); } public AbstractProductB createProductB() { return new ProductB1(); } } public class Factory2 implements AbstractFactory { public AbstractProductA createProductA() { return new ProductA2(); } public AbstractProductB createProductB() { return new ProductB2(); } }
測試
public class Test { public static void main(String[] args) { AbstractFactory factory = new Factory1(); AbstractProductA productA = factory.createProductA(); productA.showProductA(); AbstractProductB productB = factory.createProductB(); productB.showProductB(); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/76504.html
摘要:基于工廠角色和產品角色的多態性設計是工廠方法模式的關鍵。工廠方法模式之所以又被稱為多態工廠模式,是因為所有的具體工廠類都具有同一抽象父類。工廠方法模式總結工廠方法模式是簡單工廠模式的進一步抽象和推廣。 JavaScript工廠模式 首先需要說一下工廠模式。工廠模式根據抽象程度的不同分為三種 簡單工廠模式 工廠方法模式 抽象工廠模式 1.簡單工廠模式 簡單工廠模式:又稱為靜態工廠方法...
摘要:抽象工廠模式可以向客戶端提供一個接口,使客戶端在不必指定產品的具體的情況下,創建多個產品族中的產品對象。前邊的兩個都是直接生產實例的,開始以為抽象工廠也是但是后來發現抽象工廠更像是生產工廠,其實抽象工廠其實是實現子類繼承父類的方法。 創建型模式 創建型模式是對一個類的實例化過程進行了抽象,把對象的創建和對象的使用進行了分離 上一篇介紹了下單例模式,這一篇介紹一下工廠模式和抽象工廠模式,...
摘要:簡單工廠,工廠模式和抽象工廠。不要認為簡單工廠是用就覺得一無是處,也不要覺得抽象工廠比較高大上就到處套。 工廠模式,實際上也會根據業務情景不同會有不同的實現方式。一般分為3種。簡單工廠,工廠模式和抽象工廠。顧名思義,這三種從簡單到抽象,名稱越來越高大上,實現方式肯定是越來越復雜 結論1:三種工廠的實現越來越復雜 簡單工廠 public class Factory { // 定義...
摘要:反射提供給面向對象編程可以自省的能力,即反射。在簡單工廠模式中,根據傳遞的參數來返回不同的類的實例簡單工廠模式又稱為靜態工廠方法模式。也就是簡單工廠模式工廠工廠類。PHP高級特性-反射以及工廠設計模式的結合使用 [結合 Laravel-Admin 代碼實例講解]利用反射來實現工廠模式的生產而無需創建特定的工廠類本文地址http://janrs.com/?p=833轉載無需經過作者本人授權轉載...
摘要:支持增加任意產品抽象工廠用來生產不同產品族的全部產品。對于增加新的產品,無能為力支持增加產品族參考系列源地址系列目錄設計模式概述設計模式一簡單工廠模式設計模式二工廠方法模式設計模式三抽象工廠模式設計模式四單例模式 一、什么是抽象工廠模式 抽象工廠模式的用意為:給客戶端提供一個接口,可以創建多個產品族中的產品對象 ,而且使用抽象工廠模式還要滿足以下條件: 系統中有多個產品族,而系統一次...
閱讀 2743·2021-11-22 15:22
閱讀 1655·2021-11-22 14:56
閱讀 3632·2021-09-22 15:12
閱讀 2419·2021-09-02 15:41
閱讀 2141·2021-08-27 16:26
閱讀 1127·2019-08-30 15:55
閱讀 2153·2019-08-29 17:30
閱讀 682·2019-08-29 16:26