摘要:工廠模式定義一個用于創建對象的接口,這個接口由子類決定實例化哪一個類。如果不好理解,我們舉個實際一點的例子。假設我們要在一個頁面上插入一些元素,但這些元素不確定,可能是圖片,可能是鏈接,可能是文本。
工廠模式定義:一個用于創建對象的接口,這個接口由子類決定實例化哪一個類。該模式使一個類的實例化延遲到了子類。而子類可以重寫接口方法以便創建的時候指定自己的對象類型。
看不懂?沒關系,先看看下面的例子。
var produceManager = {}; produceManager.createProduceA = function(){ console.log("ProduceA"); } produceManager.createProduceB = function(){ console.log("ProduceB"); } produceManager.factory = function(type){ return new produceManager[type]; } var produce = produceManager.factory("createProduceA");
如果不好理解,我們舉個實際一點的例子。假設我們要在一個頁面上插入一些元素,但這些元素不確定,可能是圖片,可能是鏈接,可能是文本。我們需要定義工廠類與子類(產品類)。
var page = page || {}; page.dom = page.dom || {}; //子函數:處理文本 page.dom.Text = function(){ this.insert = function(where){ var txt = document.createTextNode(this.url); where.appendChild(txt); }; }; //子函數:處理鏈接 page.dom.Link = function(){ this.insert = function(where){ var link = document.createElement("a"); link.href = this.url; link.appendChild(document.createTextNode(this.url)); where.appendChild(link); }; }; //子函數:處理圖片 page.dom.Image = function(){ this.insert = function(where){ var im = document.createElement("img"); im.src = this.url; where.appendChild(im); }; }; //工廠 page.dom.factory = function(type){ return new page.dom[type]; }; //test: var o = page.dom.factory("Link"); o.url = "http://abc.com"; o.insert(document.body);
再讀讀這句話:工廠模式定義一個用于創建對象的接口,這個接口由子類決定實例化哪一個類。該模式使一個類的實例化延遲到了子類。而子類可以重寫接口方法以便創建的時候指定自己的對象類型。
這下是不是清楚多了,還不懂,沒關系,多敲幾遍,多看幾遍,就懂了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/86254.html
摘要:首先吧之前的代碼打包成一個新的設計模式公用代碼工廠模式要點工廠接口是工廠方法模式的核心,與調用者直接交互用來提供產品。適用場景在任何需要生成復雜對象的地方,都可以使用工廠方法模式。 工廠模式 之前講了接口,封裝,繼承,單例等,現在就需要應用這些特性來完成一些設計模式了。首先吧之前的代碼打包成一個新的JS DesignPattern.js // 設計模式公用代碼 exports...
摘要:工廠模式定義一個用于創建對象的接口,這個接口由子類決定實例化哪一個類。實現一個簡單的實現,使用如果使用對象屬性來實現以下例子中的工廠方法接受在運行時以字符串形式指定的類型,然后創建并返回所請求類型的對象。 1. 簡介 工廠模式的目的是為了創建對象,它通常在類或者類的靜態方法中實現,具有以下目標: 當創建相似對象時執行重復操作 當編譯時不知道具體類型的情況下,為工廠客戶提供一個創建對象...
摘要:參考文章深入理解三種工廠模式工廠模式,工廠方法模式,抽象工廠模式詳解工廠模式是中最常用的設計模式之一。這種類型的設計模式屬于創建型模式,它提供了一種創建對象的最佳方式。 參考文章:深入理解java三種工廠模式工廠模式,工廠方法模式,抽象工廠模式 詳解 工廠模式(Factory Pattern)是 Java 中最常用的設計模式之一。這種類型的設計模式屬于創建型模式,它提供了一種創建對象的...
摘要:抽象工廠模式抽象工廠是工廠模式的升級版,他用來創建一組相關或者相互依賴的對象。代碼抽象工廠模式抽象工廠的優點抽象工廠模式除了具有工廠方法模式的優點外,最主要的優點就是可以在類的內部對產品族進行約束。 抽象工廠模式 抽象工廠是工廠模式的升級版,他用來創建一組相關或者相互依賴的對象。上節學習了工廠模式,類的創建依賴工廠類,程序需要擴展時,我們必須創建新的工廠類。工廠類是用來生產產品的,那我...
摘要:抽象工廠模式可以向客戶端提供一個接口,使客戶端在不必指定產品的具體的情況下,創建多個產品族中的產品對象。前邊的兩個都是直接生產實例的,開始以為抽象工廠也是但是后來發現抽象工廠更像是生產工廠,其實抽象工廠其實是實現子類繼承父類的方法。 創建型模式 創建型模式是對一個類的實例化過程進行了抽象,把對象的創建和對象的使用進行了分離 上一篇介紹了下單例模式,這一篇介紹一下工廠模式和抽象工廠模式,...
閱讀 1816·2019-08-30 15:55
閱讀 1007·2019-08-26 11:57
閱讀 509·2019-08-26 11:29
閱讀 3358·2019-08-26 10:49
閱讀 1910·2019-08-23 18:40
閱讀 1749·2019-08-23 16:04
閱讀 3104·2019-08-23 11:01
閱讀 2271·2019-08-23 10:56