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

資訊專欄INFORMATION COLUMN

JS設計模式--Factory(工廠)模式

UsherChen / 3176人閱讀

摘要:對解耦是很有用對。設計模式系列文章設計模式之觀察者模式發(fā)布訂閱模式設計模式之工廠模式設計模式之單例模式設計模式之外觀模式設計模式之模塊模式揭示模塊模式

工廠模式

提供一個通用的接口來創(chuàng)建對象

示例

  //Car構造函數(shù)
  function Car(option) {
    this.doors = option.doors || 4
    this.color = option.color || "red"
    this.state = option.state || "brand new"
  }

  //Truck構造函數(shù)
  function Truck(option) {
    this.color = option.color || "blue"
    this.wheelSize = option.wheelSize || "large"
    this.state = option.state || "used"
  }

  //Vehicle工廠
  function VehicleFactory() {}

  VehicleFactory.prototype.vehicleClass = Car
  VehicleFactory.prototype.createVehicle = function(option) {
    if(option.vehicleType == "car") {
      this.vehicleClass = Car
    }else {
      this.vehicleClass = Truck
    }

    return new this.vehicleClass(option)
  }

  //創(chuàng)建生成汽車的工廠實例
  var carFactory = new VehicleFactory()
  var car = carFactory.createVehicle({
    vehicleType: "car",
    color: "yellow",
    doors: 6
  })

  console.log(car instanceof Car)
  console.log(car)
  //true
  //Car {doors: 6, color: "yellow", state: "brand new"}

  var movingTruck = carFactory.createVehicle({
    vehicleType: "truck",
    color: "red",
    state: "like new",
    wheelSize: "small"
  })

  console.log(movingTruck instanceof Truck)
  console.log(movingTruck)
  //true
  //Truck {color: "red", state: "like new", wheelSize: "small"}
適用場景

當對象或組建設置涉及高復雜性時

當需要根據(jù)所在當不同環(huán)境輕松生成對象當不同實例時

當處理很多共享相同屬性當小型對象或組件時

在編寫只需要滿足一個API契約(亦稱鴨子類型)的其他對象的實例對象時。對解耦是很有用對。

JS設計模式系列文章

JS設計模式之Obeserver(觀察者)模式、Publish/Subscribe(發(fā)布/訂閱)模式
JS設計模式之Factory(工廠)模式
JS設計模式之Singleton(單例)模式
JS設計模式之Facade(外觀)模式
JS設計模式之Module(模塊)模式、Revealing Module(揭示模塊)模式

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

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

相關文章

  • JS 工廠模式

    摘要:工廠模式定義一個用于創(chuàng)建對象的接口,這個接口由子類決定實例化哪一個類。實現(xiàn)一個簡單的實現(xiàn),使用如果使用對象屬性來實現(xiàn)以下例子中的工廠方法接受在運行時以字符串形式指定的類型,然后創(chuàng)建并返回所請求類型的對象。 1. 簡介 工廠模式的目的是為了創(chuàng)建對象,它通常在類或者類的靜態(tài)方法中實現(xiàn),具有以下目標: 當創(chuàng)建相似對象時執(zhí)行重復操作 當編譯時不知道具體類型的情況下,為工廠客戶提供一個創(chuàng)建對象...

    zhangke3016 評論0 收藏0
  • JS設計模式-工廠模式

    摘要:工廠模式是最常用的實例化對象模式,是用工廠方法代替操作的一種模式原文鏈接簡單工廠模式優(yōu)點能解決多個相似的問題缺點不能識別對象的類型工廠模式是為了解決多個類似對象聲明問題,也就是重復實例化對象的問題復雜工廠模式將其成員對象的實例化推遲到子類中 工廠模式是最常用的實例化對象模式,是用工廠方法代替new操作的一種模式 原文鏈接 簡單工廠模式 優(yōu)點:能解決多個相似的問題 缺點:不能識別對象的...

    sarva 評論0 收藏0
  • js設計模式(二)-工廠模式

    摘要:前言設計模式填坑系列,緊接前文距離上次寫筆記又過去了一個多月,我也不知道怎么加班加著加著就一個月了正文定義工廠模式是指提供一個創(chuàng)建對象的接口而不保留具體的創(chuàng)建邏輯,可以根據(jù)輸入類型創(chuàng)建對象。 前言 設計模式填坑系列,緊接前文(距離上次寫筆記又過去了一個多月,我也不知道怎么加班加著加著就一個月了-_-!) 正文 定義 工廠模式是指提供一個創(chuàng)建對象的接口而不保留具體的創(chuàng)建邏輯,可以根據(jù)輸入...

    figofuture 評論0 收藏0
  • JS每日一題:設計模式-如何理解工廠模式?

    摘要:期設計模式如何理解工廠模式定義創(chuàng)建對象的接口,讓子類決定實例化哪個類。適用場景需要根據(jù)不同參數(shù)產(chǎn)生不同實例,這些實例都有相同的行為這時候我們可以使用工廠模式,簡化實現(xiàn)的過程,同時也可以減少每種對象所需的代碼量。 20190408期 設計模式-如何理解工廠模式? 定義: 創(chuàng)建對象的接口,讓子類決定實例化哪個類。工廠方法將類的實例化延遲到子類,而子類可以重寫接口方法以便創(chuàng)建的時候指定自己的...

    kevin 評論0 收藏0
  • JS工廠模式

    摘要:工廠模式定義一個用于創(chuàng)建對象的接口,這個接口由子類決定實例化哪一個類。如果不好理解,我們舉個實際一點的例子。假設我們要在一個頁面上插入一些元素,但這些元素不確定,可能是圖片,可能是鏈接,可能是文本。 工廠模式定義:一個用于創(chuàng)建對象的接口,這個接口由子類決定實例化哪一個類。該模式使一個類的實例化延遲到了子類。而子類可以重寫接口方法以便創(chuàng)建的時候指定自己的對象類型。 看不懂?沒關系,先看看...

    maybe_009 評論0 收藏0

發(fā)表評論

0條評論

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