javascript
javascript学习(11)——[设计模式]工厂模式
其實(shí)學(xué)過java的人基本都知道,工廠模式,我們是基本每天都在用,只不過工廠模式也分為幾種情況:簡(jiǎn)單工廠,抽象工廠和智能工廠。
簡(jiǎn)單工廠其實(shí),大家時(shí)時(shí)刻刻都在用,個(gè)人理解,當(dāng)我們?cè)谝粋€(gè)函數(shù)中調(diào)用另一個(gè)函數(shù)的時(shí)候,我們可以簡(jiǎn)單理解為是一種簡(jiǎn)單工廠的應(yīng)用,當(dāng)然工廠模式的定義并非如此,我們看到很多書中,對(duì)工廠模式的定義是要都是大概這么一種方向,就是工廠模式必須產(chǎn)生對(duì)象,或者是以產(chǎn)生對(duì)象為目的。
借此,我們就引出我個(gè)人對(duì)設(shè)計(jì)模式的看法,我們?cè)诮酉氯フ勗O(shè)計(jì)模式的時(shí)候,這里首先需要明確小弟的一些看法,
首先,設(shè)計(jì)模式是一種思想,思想這種東西,不必太糾結(jié)于定義是什么,小弟并沒有太多時(shí)間去評(píng)價(jià)中國(guó)教育體制的問題,但是我們必須要明確的是思想絕不能禁錮,當(dāng)然我也有很多觀點(diǎn)可能并不正確,但是,這正是我們需要提高的地方;
其次,設(shè)計(jì)模式既然是一種思想,我這里并不想從代碼的角度去說(shuō)明它,旨在說(shuō)明其思想即可,這里將用最少的篇幅去介紹這幾種設(shè)計(jì)模式的思想層面的理解和其在現(xiàn)實(shí)生產(chǎn)中需要在什么地方應(yīng)用;
再者,我們這里也是避免了用大篇幅就說(shuō)明一些東西,到最后得出一個(gè)什么什么樣的結(jié)論,我這里就用最簡(jiǎn)單的話語(yǔ),去解釋這一看上去非常神秘的設(shè)計(jì)模式,旨在讓大家用最短的時(shí)間去領(lǐng)會(huì)這些設(shè)計(jì)模式,并且,如果當(dāng)你想應(yīng)用的實(shí)踐中的時(shí)候,最起碼已經(jīng)知道其思想,和在什么地方應(yīng)該去應(yīng)用它,那么,這個(gè)時(shí)候,我個(gè)人建議,你應(yīng)該去深入的研究,這里并不適合你去做深入的研究,當(dāng)然,你可以在留言的地方進(jìn)行留言,我們一起討論,總之,在博客中,我就不做詳細(xì)的闡述了。
好的,我們閑話少敘,進(jìn)入本次博客的主題:工廠模式
工廠模式分為三種:
簡(jiǎn)單工廠、抽象工廠、智能工廠
在前文中提到的內(nèi)容,我們這里就不累述,這里主要說(shuō)下,工廠模式,是為了能夠更好的包裝和抽象對(duì)象生產(chǎn)的這么一種方式。工廠的目的在于判別接口最終被那個(gè)類所實(shí)現(xiàn),產(chǎn)生實(shí)例的過程不再用new關(guān)鍵字,最終是類與類直接實(shí)現(xiàn)松耦合的目的,這也是為了我們以后更方面的維護(hù)代碼所做的工作。
真正意義的工廠:真正的JS工廠不是利用另外一個(gè)類來(lái)初始對(duì)象,,?而是使用一個(gè)子類按照相應(yīng)的定義來(lái)完成類初始化任務(wù)。
最簡(jiǎn)單的例子,我們抽象接口和實(shí)現(xiàn)類都實(shí)現(xiàn)同樣的接口,在具體實(shí)現(xiàn)類中實(shí)現(xiàn)具體的代碼。
這里再次給一個(gè)定義:工廠是一個(gè)把成員變量初始話的任務(wù)交給子類中進(jìn)行的類
低耦合,高內(nèi)聚是工廠模式的初衷,這里,我個(gè)人并不推薦什么情況下都用工廠模式,因?yàn)槿魏我粋€(gè)設(shè)計(jì)模式都只會(huì)讓程序更復(fù)雜,如果用不好的話,相反會(huì)適得其反,所以,當(dāng)我們項(xiàng)目并不是特別大的時(shí)候,并不適合用工廠模式,相反,我們用最直接的new出對(duì)象來(lái)是最好的解決方案。
這里貌似談到了中庸的思想啊,沒有最好,只有最適合,所以各位根據(jù)具體情況,具體分析吧。
轉(zhuǎn)載于:https://www.cnblogs.com/sunyingyuan/p/3686207.html
總結(jié)
以上是生活随笔為你收集整理的javascript学习(11)——[设计模式]工厂模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Linux系统安装Nginx及配置ht
- 下一篇: javascript 文件的同步加载与异