成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JS 設計模式 七(抽象工廠模式)

FuisonDesign / 2650人閱讀

摘要:抽象工廠模式抽象工廠是工廠模式的升級版,他用來創(chuàng)建一組相關或者相互依賴的對象。代碼抽象工廠模式抽象工廠的優(yōu)點抽象工廠模式除了具有工廠方法模式的優(yōu)點外,最主要的優(yōu)點就是可以在類的內部對產品族進行約束。

抽象工廠模式

抽象工廠是工廠模式的升級版,他用來創(chuàng)建一組相關或者相互依賴的對象。上節(jié)學習了工廠模式,類的創(chuàng)建依賴工廠類,程序需要擴展時,我們必須創(chuàng)建新的工廠類。工廠類是用來生產產品的,那我們也可以把“工廠類當成我們要生產的產品”,所以抽象工廠就是“工廠的工廠”,即生產工廠的工廠。下面通過一個例子來深入理解。

代碼
//抽象工廠模式    

var DP = require("./DesignPattern.js");

function CPUFactory() {
  DP.Interface(this, ["createCPU"]);
}

function IntelCPU() {
  this.__proto__ = new CPUFactory();
  this.createCPU = function () {
    console.log("Intel CPU");
  };
}

function AMDCPU() {
  this.__proto__ = new CPUFactory();
  this.createCPU = function () {
    console.log("AMD CPU");
  };
}

function Provider() {
  DP.Interface(this, ["createCPUFactory"]);
}
function InterCPUFactory() {
  this.__proto__ = new Provider();
  this.createCPUFactory = function () {
    return new IntelCPU();
  };
}

function AMDCPUFactory() {
  this.__proto__ = new Provider();
  this.createCPUFactory = function () {
    return new AMDCPU();
  };
}

var cpufactory = new InterCPUFactory();
var IntelCpu = cpufactory.createCPUFactory();
IntelCpu.createCPU();

cpufactory = new AMDCPUFactory();
var AmdCpu = cpufactory.createCPUFactory();
AmdCpu.createCPU();
抽象工廠的優(yōu)點

抽象工廠模式除了具有工廠方法模式的優(yōu)點外,最主要的優(yōu)點就是可以在類的內部對產品族進行約束。所謂的產品族,一般或多或少的都存在一定的關聯(lián)(例如不同廠商生產CPU)。

適用場景

一個繼承體系中,如果存在著多個等級結構(即存在著多個抽象類),并且分屬各個等級結構中的實現(xiàn)類之間存在著一定的關聯(lián)或者約束,就可以使用抽象工廠模式。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/79470.html

相關文章

  • PHP設計模式(八):工廠模式

    摘要:原文地址設計模式八工廠模式在設計模式七設計模式分類中我們提到過創(chuàng)建設計模式,創(chuàng)建設計模式專注于設計對象和實例的創(chuàng)建過程。工廠模式工廠模式,也是五種設計模式中唯一的類的設計模式,即在類中就能實現(xiàn)的設計模式。 原文地址:PHP設計模式(八):工廠模式 Introduction 在PHP設計模式(七):設計模式分類中我們提到過創(chuàng)建設計模式(Creation patterns),創(chuàng)建設計模式專...

    sorra 評論0 收藏0
  • js常用設計模式實現(xiàn)(二)工廠模式抽象工廠模式

    摘要:抽象工廠模式可以向客戶端提供一個接口,使客戶端在不必指定產品的具體的情況下,創(chuàng)建多個產品族中的產品對象。前邊的兩個都是直接生產實例的,開始以為抽象工廠也是但是后來發(fā)現(xiàn)抽象工廠更像是生產工廠,其實抽象工廠其實是實現(xiàn)子類繼承父類的方法。 創(chuàng)建型模式 創(chuàng)建型模式是對一個類的實例化過程進行了抽象,把對象的創(chuàng)建和對象的使用進行了分離 上一篇介紹了下單例模式,這一篇介紹一下工廠模式和抽象工廠模式,...

    meteor199 評論0 收藏0
  • JS 抽象工廠模式

    摘要:簡介抽象工廠模式就是通過類的抽象使得業(yè)務適用于一個產品類簇的創(chuàng)建,而不負責某一類產品的實例。通過抽象工廠,就可以創(chuàng)建某個類簇的產品,并且也可以通過來檢查產品的類別,也具備該類簇所必備的方法。 0. 簡介 抽象工廠模式(Abstract Factory)就是通過類的抽象使得業(yè)務適用于一個產品類簇的創(chuàng)建,而不負責某一類產品的實例。 JS中是沒有直接的抽象類的,abstract是個保留字,但...

    RiverLi 評論0 收藏0
  • 一天一個設計模式JS實現(xiàn)——工廠模式

    摘要:參考文章深入理解三種工廠模式工廠模式,工廠方法模式,抽象工廠模式詳解工廠模式是中最常用的設計模式之一。這種類型的設計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式。 參考文章:深入理解java三種工廠模式工廠模式,工廠方法模式,抽象工廠模式 詳解 工廠模式(Factory Pattern)是 Java 中最常用的設計模式之一。這種類型的設計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的...

    Muninn 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<