1. 程式人生 > >Javascript設計模式之簡單工廠(一)

Javascript設計模式之簡單工廠(一)

建立型設計模式-簡單工廠模式

簡單工廠模式(Simple Factory):又稱之為靜態工廠模式,由一個工廠物件建立某一種產品物件類的例項。主要用來建立同一類物件。

多類單例項法

為了加深我們的理解,設定以下需求。假設一個大型超市賣各種東西,超市中有許多商品,例如食品類,電器類,運動類,傢俱類。當你去該超市買東西的時候,你只需要到固定類別下,詢問售貨員,他便能快速幫你介紹從而找到你想要的東西。

// 建立一個食品類, 含有類別,食品名,食品價格 ,食品產地
let Food = function(){
   this.type = '食品'this.name = '蘋果'
this.price = '5.83'; this.origin = '陝西' } Food.prototype = { getPrice:function(){ return this.price; }, getRoute:function(){ console.log('超市正門西邊過去') }, getDescription:function(){ console.log('蘋果又甜又大'); } } // 建立一個家電類, 含有類別,傢俱名,傢俱價格 ,傢俱品牌 let ElectricalAppliances = function
(){
this.type = '家電'this.name = '智慧TV'; this.price = '5600'; this.brand = '小米'; } ElectricalAppliances.prototype = { getPrice:function(){ return this.price; }, getDescription:function(){ console.log('享受智慧時代'); } } let Sports =function(){this.type = '運動';}; let Furniture = function
(){
this.type='傢俱'}; ... // 建立了這家超市的各種類別產品之後 // 我們使用簡單工廠模式來模擬讓售貨員去找到固定的產品 let SuperMarketFactory = function(type){ switch(type){ case '食品'return new Food();break; case '家電'return new ElectricalAppliances();break; case '運動': return new Sports();break; case '傢俱': return new Furniture();break; ... default :break; } } // 這樣我們的顧客來詢問,只需要告訴類別,就可以建立對應例項了。 // 比如他需要買家電,那麼 只需要如此,我們就可以建立家電例項了。售貨員便可以告知他相關資訊了。 let obj = new SuperMarketFactory('家電');

單物件代替多個類

此使用場景一般是在於該類中有很多共通方法時,建立相似物件。

 let DialogFactory = function(type,content){
    let o  = new Object();
    o.type = type;
    o.content = content;
    if(type === 'MODEL'){
        // todo 模態框相關的UI渲染操作
    }
    if(type === 'ALERT'){
      //todo 提示框相關的UI操作
    }
    // 將物件返回
    return o;
 }
 // 建立一個模態框
 let model = new DialogFactory('MODEL','恭喜登入成功')

上述兩者方式,我們如何採用,取決於我們的業務需求。第一種方式建立的方式是通過類例項化建立物件的,第二種方式是通過建立一個物件,然後包裝增強其屬性和功能來實現的。前者,如果這些類(採用寄生式繼承方式)均繼承同一個類,則其父類的原型方法可以共用。後者,由於每個物件都是一個新的物件,所以方法是不能共用的。

參考書籍: 《JavaScript 設計模式》張容銘
同時大家也可參考這位讀者的觀後感

相關推薦

Javascript設計模式簡單工廠

建立型設計模式-簡單工廠模式 簡單工廠模式(Simple Factory):又稱之為靜態工廠模式,由一個工廠物件建立某一種產品物件類的例項。主要用來建立同一類物件。 多類單例項法 為了加深我們的理解,設定以下需求。假設一個大型超市賣各種東西,

Java設計模式總體簡介——簡單易懂

設計模式(Design pattern)是一套被反覆使用、多數人知曉的、經過分類編目的、程式碼設計經驗的總結。使用設計模式是為了可重用程式碼、讓程式碼更容易被他人理解、保證程式碼可靠性。 毫無疑問,設計模式於己於他人於系統都是多贏的,設計模式使程式碼編制真正工程化,設計模式是

設計模式問題集錦

是把 後繼 ogr data- 跟著 沒有 解釋器 space 基本實現 設計模式的主要資料是《大話設計模式》。第一階段先看看各種模式的基本概念。實現每一個模式下的樣例。然後在進行理解性的學習和掌握,靈活掌握各種模式的長處,知道某種模式適合那種狀態。如今,樣

大話設計模式簡單工廠模式Java版

大話設計模式——第一章(簡單工廠模式)   題目:請用C++、Java、C#或VB.NET任意一種面嚮物件語言實現一個計算器控制檯程式,要求輸入兩個數和運算子號,得到結果。 import java.io.Console; import java.util.Scanner; /**

設計模式簡單工廠模式C#語言描述

嚴格意義上來說,簡單工廠模式並不屬於GoF的23種設計模式,但是它是學習其他工廠模式的基礎和前提條件。理解了簡單工廠模式,學習工廠方法模式和抽象工廠模式會比較容易一些。 簡單工廠模式的定義 定義一個工廠類,他可以根據不同的引數返回不同類的例項。通常情況下,被建立的類的例項通常都具有共同的父類。

設計模式簡單工廠模式simple factory pattern)

什麼是簡單工廠模式, 舉個不恰當的例子, 就說生產雪糕吧, 雪糕什麼形狀的都有, 有長方形,有圓形等等, 怎麼生產呢? 首先肯定是先造個機器, 然後弄幾個按鈕,上面依次寫上長方形, 圓形等等,我按長方形就給我出長方形的, 我按圓形的按鈕就給我出圓形的。 大概就是這樣接下來

設計模式簡單工廠工廠方法模式c++

問題描述 在面向物件系統設計中經常可以遇到以下的兩類問題: 1)為了提高內聚(Cohesion)和鬆耦合(Coupling),我們經常會抽象出一些類的公共介面以形成抽象基類或者介面。這樣我們可以通過宣告一個指向基類的指標來指向實際的子類實現, 達到了多型的目的

設計模式簡單工廠模式SimpleFactoryPattern

1.定義       •  簡單工廠模式屬於建立型模式,又叫作靜態工廠方法模式,這是由一個工廠物件決定創建出哪一種產品類的例項。       • 現實生活中,工廠是負責生產產品的;同樣在設計模式中,簡單工廠模式我們可以理解為負責生產物件的一個類,稱為“工廠類”。 2.模

java設計模式——簡單工廠工廠方法模式、抽象工廠模式建立性【讀書筆記】

1、簡單工廠模式            應用場景,程式設計中通過工廠方法接受一個引數,建立不同類型別的例項。            設計示意圖                                         例項                  

設計模式簡單工廠模式整理筆記

面向物件和麵向過程的區別:活字印刷術和 印刷術的區別。(借用大神的比喻,感覺很貼切,而且想像步到更好的了) 借用面試所寫的的 一個程式:輸入個位數的減減乘除,輸出結果。 初學者和大部分開發者所犯下錯誤

java 設計模式簡單工廠模式含樣例源碼

ace org build cep 說明 pad 客戶 enc trac 簡單工廠模式的目的:使得對象的創建和使用分離,降低系統耦合,對用戶隱藏類的實例創建細節 簡單工廠模式屬於創建型模式的一種 簡單工廠模式的定義:定義一個工廠類,它可以根據參數的不同返回不

設計模式 簡單工廠模式詳解

技術分享 接口 create [] 幫助 cut 小蘿莉 filter 類之間的關系 定義:從設計模式的類型上來說,簡單工廠模式是屬於創建型模式,又叫做靜態工廠方法(Static Factory Method)模式,但不屬於23種GOF設計模式之一。簡單工廠模式是由一個工廠

Asp.Net 設計模式 簡單工廠模式

相關 如果 cnblogs 獲取 自動 ber c# thread operation 主要思想:      public static Operation CreateFactory(string ope) { //實例化空父類,讓

設計模式簡單工廠模式

pos 示例 概念 font 代碼示例 情況 strong size span 概念    應用場景   一個類多個子類,也就是多態的情況,當我們 代碼示例設計模式之簡單工廠模式

設計模式簡單工廠模式(創建型)

== 邏輯 設計 技術分享 對象創建 代碼 extends 工廠類 font 定義 簡單工廠模式又稱靜態工廠模式。可以根據參數的不同返回不同類的實例。定義一個類來創建其它類的實例。 角色 簡單工廠模式包含如下角色 Factory:工廠角色 Product:抽象產品角色 Co

golang設計模式簡單工廠模式

簡單工廠模式 wiki: 簡單工廠模式並不屬於 GoF 23 個經典設計模式,但通常將它作為學習其他工廠模式的基礎,它的設計思想很簡單,其基本流程如下: 首先將需要建立的各種不同物件(例如各種不同的 Chart 物件)的相關程式碼封裝到不同的類中,這些類稱為具體產品類,而將它們公共的程式碼

設計模式簡單工廠模式學習

之前瀏覽了一遍大話設計模式,看的激情四射,感覺寫的很好,但是瞄了一遍感覺收穫不多,於是決定手敲遍各種模式程式碼,今天敲了一遍簡單工廠模式程式碼,收穫滿滿,獲益良多。 引用書中標題的一句話: 程式碼無錯就是優? --------------------------簡單工廠模式 首先是一個實現計算

設計模式簡單工廠模式( Simple Factory Pattern )

1. 簡單工廠模式( Simple Factory Pattern ) 目錄 簡單工廠模式( Simple Factory Pattern ) 模式動機 模式定義 模式結構 時序圖 程式碼分析 模式分析 例項

C#基礎 二十 設計模式簡單工廠模式及介面

前言       這幾天看了這些視訊進行了一些總結,我是打算先看完C#視訊然後繼續看設計模式這本書的,但是視訊中提到了一部分設計模式中的內容,那麼我也多少的總結一下吧,有助於後邊對設計模式的學習! 交流與互動

設計模式 - 簡單工廠模式

一、什麼是簡單工廠模式 簡單工廠模式(Simple Factory Pattern):又稱為靜態工廠方法(Static Factory Method)模式,它屬於類建立型模式。在簡單工廠模式中,一個抽象的產品類,可以派生出多個具體的產品類,它們都具有共同的父類。 我們再來看下簡單工廠模式的U