摘要:抽象工廠模式概念抽象工廠模式是工廠模式的升級,用來創建一組相關或相互依賴的對象。
抽象工廠模式
概念
抽象工廠模式是工廠模式的升級,用來創建一組相關或相互依賴的對象。
角色
1.抽象工廠角色
2.具體工廠角色
3.產品接口或抽象產品角色
4.具體產品角色
角色對應關系
1.多個具體工廠繼承自抽象工廠;
2.多個具體產品繼承自抽象產品或實現產品接口;
3.每個具體工廠可產生多個具體產品。
實現過程
產品接口
public interface Product1 { } public interface Product2 { }
具體產品類
public class ProductA1 implements Product1 { public ProductA1(){ System.out.println("Product : " + this.getClass().getSimpleName()); } } public class ProductA2 implements Product2 { public ProductA2(){ System.out.println("Product : " + this.getClass().getSimpleName()); } }
定義抽象工廠
public abstract class AbstractFactory { public abstract Product1 create1(); public abstract Product2 create2(); }
產生產品的具體工廠
public class FactoryA extends AbstractFactory{ @Override public Product1 create1() { return new ProductA1(); } @Override public Product2 create2() { return new ProductA2(); } }
調用方法
public static void main(String[] args) { AbstractFactory abstractFactory = new FactoryA(); abstractFactory.create1(); abstractFactory.create2(); }
輸出
Product : ProductA1 Product : ProductA2
抽象工廠與工廠方法
1.抽象工廠模式適用于改變產品系列,對產品系列的改變符合開閉原則;
2.工廠方法模式適用于改變產品類別。
源碼
https://github.com/Seasons20/DisignPattern.git
END
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/71109.html
摘要:支持增加任意產品抽象工廠用來生產不同產品族的全部產品。對于增加新的產品,無能為力支持增加產品族參考系列源地址系列目錄設計模式概述設計模式一簡單工廠模式設計模式二工廠方法模式設計模式三抽象工廠模式設計模式四單例模式 一、什么是抽象工廠模式 抽象工廠模式的用意為:給客戶端提供一個接口,可以創建多個產品族中的產品對象 ,而且使用抽象工廠模式還要滿足以下條件: 系統中有多個產品族,而系統一次...
摘要:在標準的種設計模式中,與工廠相關的模式有種工廠方法模式和抽象工廠模式。在這里,要區分清楚的是工廠方法模式強調的是方法,而抽象工廠模式強調的是工廠,這是兩個相關但又不相同的概念,就像做飯和廚房的區別,一個是談動作,一個是談空間。 在標準的23種設計模式中,與工廠相關的模式有2種:工廠方法模式(Factory method pattern)和抽象工廠模式(Abstract factory ...
摘要:對于這個問題,接下來的工廠方法模式可以解決這個問題。二工廠方法模式的優點擁有良好的封裝性,代碼結構清晰。參考系列源地址系列目錄設計模式概述設計模式一簡單工廠模式設計模式二工廠方法模式設計模式三抽象工廠模式設計模式四單例模式 簡單工廠簡述: 簡單工廠模式實現了產品類的代碼跟客戶端代碼分離,但會有一個問題,優秀的代碼是符合開閉原則如果你要加一個C類產品,你就要修改工廠類里面的代碼,也就是說...
閱讀 2589·2021-10-25 09:45
閱讀 1249·2021-10-14 09:43
閱讀 2307·2021-09-22 15:23
閱讀 1532·2021-09-22 14:58
閱讀 1942·2019-08-30 15:54
閱讀 3550·2019-08-30 13:00
閱讀 1364·2019-08-29 18:44
閱讀 1578·2019-08-29 16:59