摘要:抽象工廠模式定義抽象工廠模式是指當(dāng)有多個(gè)抽象角色時(shí),使用的一種工廠模式。
抽象工廠模式
定義:抽象工廠模式是指當(dāng)有多個(gè)抽象角色時(shí),使用的一種工廠模式。抽象工廠模式可以向客戶(hù)端提供一個(gè)接口,使客戶(hù)端在不必指定產(chǎn)品的具體的情況下,創(chuàng)建多個(gè)產(chǎn)品族中的產(chǎn)品對(duì)象 優(yōu)點(diǎn): 1.它分離了具體的類(lèi) 2.它使得易于交換產(chǎn)品系列 3.它有利于產(chǎn)品的一致性 缺點(diǎn): 難以支持新種類(lèi)的產(chǎn)品
代碼
注解: 由于抽象工廠比較適合比較大型的項(xiàng)目,貼合vue實(shí)際操作也沒(méi)有想到合適的使用,所以使用了周邊的業(yè)務(wù)場(chǎng)景來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的抽象工廠,下面我們來(lái)看todoList的抽象類(lèi),里面它會(huì)檢測(cè)是否有客戶(hù)使用了它本身,如果使用了它的本身則拋出一個(gè)錯(cuò)誤,然后創(chuàng)建了兩個(gè)具體的產(chǎn)品類(lèi)日常工作的todoList和學(xué)習(xí)的todoList,并且繼承基類(lèi)todoList,并對(duì)它進(jìn)行覆蓋實(shí)現(xiàn)
//抽象產(chǎn)品 (todoList) class todoList { constructor () { if (new.target === todoList) { throw new Error("抽象類(lèi)不能實(shí)例化") } } } /** * 具體產(chǎn)品類(lèi) */ // 創(chuàng)建工作 class dailyWork extends todoList{ constructor (name) { super() this.name = name } create () { console.log("日常工作", this.name) } } // 創(chuàng)建學(xué)習(xí) class study extends todoList{ constructor (name) { super() this.name = name } create () { console.log("學(xué)習(xí)", this.name) } } // 使用 function use(type) { switch (type) { case "work": return dailyWork break; case "study": return study break; } } let dailyWork1 = use("work") let study1 = use("study") let newWork = new dailyWork1("添加虛擬號(hào)") let newStudy = new study1("vue") newWork.create() // 學(xué)習(xí) vue newStudy.create() // 日常工作 添加虛擬號(hào)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/104509.html
摘要:基于工廠角色和產(chǎn)品角色的多態(tài)性設(shè)計(jì)是工廠方法模式的關(guān)鍵。工廠方法模式之所以又被稱(chēng)為多態(tài)工廠模式,是因?yàn)樗械木唧w工廠類(lèi)都具有同一抽象父類(lèi)。工廠方法模式總結(jié)工廠方法模式是簡(jiǎn)單工廠模式的進(jìn)一步抽象和推廣。 JavaScript工廠模式 首先需要說(shuō)一下工廠模式。工廠模式根據(jù)抽象程度的不同分為三種 簡(jiǎn)單工廠模式 工廠方法模式 抽象工廠模式 1.簡(jiǎn)單工廠模式 簡(jiǎn)單工廠模式:又稱(chēng)為靜態(tài)工廠方法...
摘要:簡(jiǎn)單工廠,工廠模式和抽象工廠。不要認(rèn)為簡(jiǎn)單工廠是用就覺(jué)得一無(wú)是處,也不要覺(jué)得抽象工廠比較高大上就到處套。 工廠模式,實(shí)際上也會(huì)根據(jù)業(yè)務(wù)情景不同會(huì)有不同的實(shí)現(xiàn)方式。一般分為3種。簡(jiǎn)單工廠,工廠模式和抽象工廠。顧名思義,這三種從簡(jiǎn)單到抽象,名稱(chēng)越來(lái)越高大上,實(shí)現(xiàn)方式肯定是越來(lái)越復(fù)雜 結(jié)論1:三種工廠的實(shí)現(xiàn)越來(lái)越復(fù)雜 簡(jiǎn)單工廠 public class Factory { // 定義...
摘要:抽象工廠模式可以向客戶(hù)端提供一個(gè)接口,使客戶(hù)端在不必指定產(chǎn)品的具體的情況下,創(chuàng)建多個(gè)產(chǎn)品族中的產(chǎn)品對(duì)象。前邊的兩個(gè)都是直接生產(chǎn)實(shí)例的,開(kāi)始以為抽象工廠也是但是后來(lái)發(fā)現(xiàn)抽象工廠更像是生產(chǎn)工廠,其實(shí)抽象工廠其實(shí)是實(shí)現(xiàn)子類(lèi)繼承父類(lèi)的方法。 創(chuàng)建型模式 創(chuàng)建型模式是對(duì)一個(gè)類(lèi)的實(shí)例化過(guò)程進(jìn)行了抽象,把對(duì)象的創(chuàng)建和對(duì)象的使用進(jìn)行了分離 上一篇介紹了下單例模式,這一篇介紹一下工廠模式和抽象工廠模式,...
摘要:反射提供給面向?qū)ο缶幊炭梢宰允〉哪芰Γ捶瓷洹T诤?jiǎn)單工廠模式中,根據(jù)傳遞的參數(shù)來(lái)返回不同的類(lèi)的實(shí)例簡(jiǎn)單工廠模式又稱(chēng)為靜態(tài)工廠方法模式。也就是簡(jiǎn)單工廠模式工廠工廠類(lèi)。PHP高級(jí)特性-反射以及工廠設(shè)計(jì)模式的結(jié)合使用 [結(jié)合 Laravel-Admin 代碼實(shí)例講解]利用反射來(lái)實(shí)現(xiàn)工廠模式的生產(chǎn)而無(wú)需創(chuàng)建特定的工廠類(lèi)本文地址http://janrs.com/?p=833轉(zhuǎn)載無(wú)需經(jīng)過(guò)作者本人授權(quán)轉(zhuǎn)載...
摘要:一簡(jiǎn)單工廠定義簡(jiǎn)單工廠其實(shí)并不屬于種設(shè)計(jì)模式之一,該模式是工廠方法模式的弱化或者說(shuō)是工廠方法模式的一種特例,因?yàn)楹?jiǎn)單,所以稱(chēng)為簡(jiǎn)單工廠模式,也叫做靜態(tài)工廠模式。 一、簡(jiǎn)單工廠 定義 簡(jiǎn)單工廠其實(shí)并不屬于23種GOF設(shè)計(jì)模式之一,該模式是工廠方法模式的弱化(或者說(shuō)是工廠方法模式的一種特例),因?yàn)楹?jiǎn)單,所以稱(chēng)為簡(jiǎn)單工廠模式(Simple Factory Pattern),也叫做靜態(tài)工廠模式...
摘要:與以往的使用的方式不同,工廠模式使用工廠實(shí)例化對(duì)象。抽象工廠模式亮相抽象工廠模式抽象工廠模式提供一個(gè)接口,用于創(chuàng)建相關(guān)或依賴(lài)對(duì)象的家族,而不需要明確指定具體類(lèi)。 寫(xiě)在前面 這篇博文介紹設(shè)計(jì)模式的形式將與其他篇博文不太一樣,這里我們將從一個(gè)問(wèn)題入手,逐步了解到簡(jiǎn)單工廠、工廠方法與抽象工廠模式。 PS:這篇博文涉及的內(nèi)容較多,所以篇幅有點(diǎn)長(zhǎng),請(qǐng)耐心閱讀。 為什么要使用工廠模式? 在 OO ...
閱讀 3056·2021-11-18 10:02
閱讀 3324·2021-11-02 14:48
閱讀 3387·2019-08-30 13:52
閱讀 547·2019-08-29 17:10
閱讀 2079·2019-08-29 12:53
閱讀 1400·2019-08-29 12:53
閱讀 1024·2019-08-29 12:25
閱讀 2162·2019-08-29 12:17