JavaScript設(shè)計(jì)模式之工廠模式簡(jiǎn)單實(shí)例教程
本文實(shí)例講述了JavaScript設(shè)計(jì)模式之工廠模式。分享給大家供大家參考,具體如下:
一、工廠模式概念
工廠模式定義一個(gè)用于創(chuàng)建對(duì)象的接口,這個(gè)接口由子類(lèi)決定實(shí)例化哪一個(gè)類(lèi)。該模式使一個(gè)類(lèi)的實(shí)例化延遲到了子類(lèi)。而子類(lèi)可以重寫(xiě)接口方法以便創(chuàng)建的時(shí)候指定自己的對(duì)象類(lèi)型(抽象工廠)。
這個(gè)模式十分有用,尤其是創(chuàng)建對(duì)象的流程賦值的時(shí)候,比如依賴于很多設(shè)置文件等。并且,你會(huì)經(jīng)常在程序里看到工廠方法,用于讓子類(lèi)定義需要?jiǎng)?chuàng)建的對(duì)象類(lèi)型。
二、工廠模式的作用和注意事項(xiàng)
模式作用:
1、對(duì)象構(gòu)建十分復(fù)雜--我們穿鞋很簡(jiǎn)單,但是制作鞋子的過(guò)程十分復(fù)雜
2、需要依賴具體的環(huán)境創(chuàng)建不同的實(shí)例--工廠可以做鞋子,做衣服,工廠可以做我需要的鞋子(鞋子不同),然后送到指定的地方(地方可以不同),可以理解為不同的實(shí)例
3、處理大量具有相同屬性的小對(duì)象--比如買(mǎi)一雙鞋,沒(méi)必要找工廠生產(chǎn)
注意事項(xiàng):
1、不能濫用工廠,有時(shí)候僅僅是給代碼增加復(fù)雜度--如上3
三、工廠模式代碼和實(shí)戰(zhàn)總結(jié)
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>工廠模式</title> </head> <body> <script> //1.工廠應(yīng)該有廠長(zhǎng)來(lái)決定運(yùn)行到底哪條產(chǎn)品線 //2.消費(fèi)者-》子類(lèi) var gongchang = {}; gongchang.chanyifu = function(){ this.gongren = 50; console.log("我們有"+this.gongren); } gongchang.chanxie = function(){ this.gongren = 100; console.log("產(chǎn)鞋子"); } gongchang.yunshu = function(){ this.gongren = 10; console.log("運(yùn)輸"); } gongchang.changzhang = function(para){ return new gongchang[para](); } var we = gongchang.changzhang("chanyifu"); var me = gongchang.changzhang("chanxie"); console.log(me.gongren); var ys = gongchang.changzhang("yunshu"); console.log(ys.gongren); </script> </body> </html>
使用在線HTML/CSS/JavaScript代碼運(yùn)行工具 http://tools.jb51.net/code/HtmlJsRun測(cè)試運(yùn)行效果如下:
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專(zhuān)題:《javascript面向?qū)ο笕腴T(mén)教程》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- 深入理解JavaScript系列(38):設(shè)計(jì)模式之職責(zé)鏈模式詳解
- JavaScript實(shí)現(xiàn)職責(zé)鏈模式概述
- JavaScript職責(zé)鏈模式概述
- JavaScript設(shè)計(jì)模式之模板方法模式原理與用法示例
- JavaScript設(shè)計(jì)模式之緩存代理模式原理與簡(jiǎn)單用法示例
- JavaScript設(shè)計(jì)模式之觀察者模式(發(fā)布訂閱模式)原理與實(shí)現(xiàn)方法示例
- JavaScript設(shè)計(jì)模式之工廠模式和抽象工廠模式定義與用法分析
- JavaScript設(shè)計(jì)模式之構(gòu)造器模式(生成器模式)定義與用法實(shí)例分析
- JavaScript設(shè)計(jì)模式之單例模式原理與用法實(shí)例分析
- JavaScript設(shè)計(jì)模式之裝飾者模式定義與應(yīng)用示例
- JavaScript設(shè)計(jì)模式之職責(zé)鏈模式應(yīng)用示例
相關(guān)文章
js實(shí)現(xiàn)的點(diǎn)擊超鏈顯示隱藏層
js實(shí)現(xiàn)的點(diǎn)擊超鏈顯示隱藏層...2007-05-05js求數(shù)組中全部數(shù)字可拼接出的最大整數(shù)示例代碼
這篇文章主要給大家介紹了利用js如何求數(shù)組中全部數(shù)字可拼接出的最大整數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考借鑒,下面隨著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。2017-08-08H5用戶注冊(cè)表單頁(yè) 注冊(cè)模態(tài)框!
這篇文章主要為大家詳細(xì)介紹了H5用戶注冊(cè)表單頁(yè)的相關(guān)代碼,注冊(cè)模態(tài)框,如何設(shè)計(jì)用戶注冊(cè)表單頁(yè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09JS實(shí)現(xiàn)導(dǎo)出Excel和CSV文件操作
這篇文章介紹了JS實(shí)現(xiàn)導(dǎo)出Excel和CSV文件的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05利用D3.js實(shí)現(xiàn)最簡(jiǎn)單的柱狀圖示例代碼
D3.js是一個(gè)基于數(shù)據(jù)操作文檔JavaScript庫(kù)。D3幫助你給數(shù)據(jù)帶來(lái)活力通過(guò)使用HTML、SVG和CSS。D3重視Web標(biāo)準(zhǔn)為你提供現(xiàn)代瀏覽器的全部功能,而不是給你一個(gè)專(zhuān)有的框架。最近在學(xué)習(xí)D3.js,這個(gè)例子是通過(guò)d3.js畫(huà)一個(gè)簡(jiǎn)單的柱狀圖。下面來(lái)一起看看吧。2016-12-12layui問(wèn)題之自動(dòng)滾動(dòng)二級(jí)iframe頁(yè)面到指定位置的方法
今天小編就為大家分享一篇layui問(wèn)題之自動(dòng)滾動(dòng)二級(jí)iframe頁(yè)面到指定位置的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09JS彈窗 JS彈出DIV并使整個(gè)頁(yè)面背景變暗功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了JS彈窗 JS彈出DIV并使整個(gè)頁(yè)面背景變暗功能的實(shí)現(xiàn)代碼,需要的朋友可以參考下2018-04-04