1. 程式人生 > >抽象工廠模式介紹與使用

抽象工廠模式介紹與使用

介紹

抽象工廠模式的出現是對簡單工廠模式的升級,有利於專案後期的開發修改,對於簡單工廠模式可以參考我的另一篇部落格,從簡單工廠模式中可以發現在工廠中建立相應的物件是通過條件判斷方式,進行選擇的方式進行建立,這明顯不利於今後的專案功能的修改增加,由此我們引入了抽象工廠模式。

使用

使用中,即將簡單工廠模式中的工廠也進行抽象化,過程如下:

public interface IApi {
    void show();
}
public class AndroidApi implements IApi {

    @Override
    public void show
() { System.out.println("Android : 我是Android的api"); } }
public class IOSApi  implements IApi{

    @Override
    public void show() {
        System.out.println("Android : 我是IOS的api");
    }

}
public interface IFactory {
     IApi create();
}
//具體的工廠專門為某一個產品服務
public class AndroidFactory
implements IFactory {
@Override public IApi create() { return new AndroidApi(); } }
public class IOSFactory implements IFactory {

    @Override
    public IApi create() {
        return new IOSApi();
    }

}

使用:

IFactory factory=new IOSFactory();
        factory.create
().show();

在android 官方中也運用此開發模式,可以參考android底層 MediaPlayerFactory.cpp。感興趣的同學可以自行查資料。

相關推薦

抽象工廠模式介紹使用

介紹 抽象工廠模式的出現是對簡單工廠模式的升級,有利於專案後期的開發修改,對於簡單工廠模式可以參考我的另一篇部落格,從簡單工廠模式中可以發現在工廠中建立相應的物件是通過條件判斷方式,進行選擇的方式進行建立,這明顯不利於今後的專案功能的修改增加,由此我們引入了抽

抽象工廠模式例項講解

ApptEncoder{ abstract function encode(); } class BloggsApptEncoder extends ApptEncoder{ function encode(){ return 'this is BloggsApptEncod

工廠模式抽象工廠模式總結比較(屌絲專用)

屌絲有了造錢工廠,神馬都是浮雲。 工廠模式(工廠方法模式): 一個抽象Money(產品類)派生出BlueMoney、RedMoney(多個具體產品類) 一個抽象MoneyFactory(工廠類)派生出BlueMoneyFactory、MoneyFactory(多個具體工廠

抽象工廠模式(JavaKotlin版)

class das list 新的 ges extends 知識 簡單工廠 所有 前文推送 設計模式 簡單工廠模式(Java與Kotlin版) 工廠方法模式(Java與Kotlin版) Kotlin基礎知識 Kotlin入門第一課:從對比Java開始

【Unity23種設計模式抽象工廠模式(Abstract Factory)

根據 strac 結果 產品 不同 面試 public str 構建 GoF中定義: “提供一個能夠建立整個類群組或有關聯的對象,而不必指明它們的具體類。” 意思就是 根據不同的執行環境產生不同的抽象類子類 抽象工廠模式經常在面試中會涉及到 下面的例子為工廠1和

【設計模式Android】抽象工廠模式——嵌合體克隆工廠

設計模式 android 什麽是抽象工廠模式 所謂抽象工廠模式,就是為創建一組相關或者是互相依賴的對象提供一個接口,而不需要指定它們的具體類的設計模式。抽象工廠模式適用於一個對象族有相同的約束的情況,用不抽象的語言解釋就是國內著名開發者服務商環信在Android和iOS平臺都提供了IM SDK,盡管功

抽象工廠模式工廠方法模式的區別

dma ati ring factor elf ride 測試 string this   抽象工廠模式與工廠方法模式的最大區別在於,工廠方法模式針對的是一個產品等級結構;而抽象工廠模式則需要面對多個產品等級結構。   在什麽情況下應當使用抽象工廠模式?   這個系統的產品

Java 設計模式工廠方法模式抽象工廠模式

一、前期回顧 上一篇《Java設計模式之單例模式》詳細介紹了單例模式,介紹了單例模式的使用場景,優缺點,同時也寫了兩種常見的單例模式寫法,懶漢式單例模式和餓漢氏單例模式,當然,單例模式的寫法還有很多,比如,列舉單例模式,靜態內部類單例模式等。有興趣的可以自行查詢資料。本篇開始介紹單例

工廠模式抽象工廠模式

工廠模式與抽象工廠模式 一、工廠模式概述 實現了建立者和呼叫者的分離。分類有:簡單工廠模式,工廠方法模式,抽象工廠模式。 面向物件設計的基本原則: OCP(開閉原則,Open-Closed Principle):一個軟體的實體應當對擴充套件開 放

《JAVA模式》之抽象工廠模式(轉)

場景問題   舉個生活中常見的例子——組裝電腦,我們在組裝電腦的時候,通常需要選擇一系列的配件,比如CPU、硬碟、記憶體、主機板、電源、機箱等。為討論使用簡單點,只考慮選擇CPU和主機板的問題。   事實上,在選擇CPU的時候,面臨一系列的問題,比如品牌、型號、針腳數目、

設計模式工廠方法模式抽象工廠模式

這兩天抽空學習一下設計模式,剛開始遇到工廠模式,感覺工廠方法模式和抽象工廠模式的區別有點模糊,看了之前的面試資料也是有點區分不清,於是查閱一些網上的資料和部落格,記錄一下。 1,工廠方法模式: 定義一個用於建立物件的介面,讓子類決定例項化哪一個類,工廠方法使得一個類的例項化延遲到了子類

簡單工廠模式工廠方法模式抽象工廠模式 、策略模式及策略工廠之間的區別

一.前言   話說十年前,有一個爆發戶,他家有三輛汽車(Benz(賓士)、Bmw(寶馬)、Audi(奧迪)),還僱了司機為他開車。不過,爆發戶坐車時總是這樣:上Benz車後跟司機說“開賓士車!”,坐上Bmw後他說“開寶馬車!”,坐上 Audi後他說“開奧迪車!”。 你一定說:這人有病!

抽象工廠模式--工廠方法模式區別

原文:https://blog.csdn.net/wyxhd2008/article/details/5597975 首先來看看這兩者的定義區別: 工廠模式:定義一個用於建立物件的藉口,讓子類決定例項化哪一個類 抽象工廠模式:為建立一組相關或相互依賴的物件提供一個介面,而且無需指定他們的具

工廠方法模式抽象工廠模式

 一、引子話說十年前,有一個暴發戶,他家有三輛汽車——Benz賓士、Bmw寶馬、Audi奧迪,還僱了司機為他開車。不過,暴發戶坐車時總是怪怪的:上Benz車後跟司機說“開賓士車!”,坐上Bmw後他說“開寶馬車!”,坐上Audi說“開奧迪車!”。你一定說:這人有病!直接說

設計模式:簡單工廠工廠方法、抽象工廠之小結區別

簡單工廠,工廠方法,抽象工廠都屬於設計模式中的建立型模式。其主要功能都是幫助我們把物件的例項化部分抽取了出來,優化了系統的架構,並且增強了系統的擴充套件性。 本文是本人對這三種模式學習後的一個小結以及對他們之間的區別的理解。 簡單工廠 簡單工廠模式的工廠類一般是使

JAVA設計模式 3【建立型】理解工廠模式抽象工廠模式

上一節我們已經學習了原型模式,稍微複習一下:通過重寫Object 類的`clone()` 方法實現淺克隆,淺克隆也要實現`Cloneable` 標記介面。而深克隆則是將物件通過`序列化和反序列化` 的方式進行建立和還原。 本小結將學習的是工廠模式,這個模式在平時是特別常用的,還需好好理解。我也將舉一些例子

設計模式——抽象工廠模式(C++實現)

concrete out png return style bsp ctp img using 1 #include <iostream> 2 #include <string> 3 4 usin

【轉載】設計模式_抽象工廠模式

ron mage ges 定義 ima cnblogs 工廠 一個 相互 定義:為創建一組相關或相互依賴的對象提供一個接口,而且無需指定他們的具體類。 是工廠方法的擴展。    【轉載】設計模式_抽象工廠模式

設計模式抽象工廠模式

elm 步驟 cli 優點 abstract 工程師 face abs ges 場景問題 舉個生活中常見的例子——組裝電腦,我們在組裝電腦的時候,通常需要選擇一系列的配件,比如CPU、硬盤、內存、主板、電源、機箱等。 需要整體考慮各個配件之間的兼容性。比如:CPU和主板,如

Note8:C#設計模式工廠方法模式(VS 簡單工廠模式 & 抽象工廠模式

工廠方法模式 blog 抽象工廠 nbsp strong str cnblogs note 設計 一、資源說明 (1)本文有參考:http://www.cnblogs.com/zhili/p/FactoryMethod.html 待更!Note8:C#設計模式—工廠方法