其實學過java的人基本都知道,原廠模式,我們是基本每天都在用,只不過原廠模式也分為幾種情況:簡單工廠,抽象工廠和智能工廠。
簡單工廠其實,大家時時刻刻都在用,個人理解,當我們在一個函數中調用另一個函數的時候,我們可以簡單理解為是一種簡單工廠的應用,當然原廠模式的定義並非如此,我們看到很多書中,對原廠模式的定義是要都是大概這麼一種方向,就是原廠模式必須產生對象,或者是以產生對象為目的。
藉此,我們就引出我個人對設計模式的看法,我們在接下去談設計模式的時候,這裡首先需要明確小弟的一些看法,
首先,設計模式是一種思想,思想這種東西,不必太糾結於定義是什麼,小弟並沒有太多時間去評價中國教育體制的問題,但是我們必須要明確的是思想絕不能禁錮,當然我也有很多觀點可能並不正確,但是,這正是我們需要提高的地方;
其次,設計模式既然是一種思想,我這裡並不想從代碼的角度去說明它,旨在說明其思想即可,這裡將用最少的篇幅去介紹這幾種設計模式的思想層面的理解和其在現實生產中需要在什麼地方應用;
再者,我們這裡也是避免了用大篇幅就說明一些東西,到最後得出一個什麼什麼樣的結論,我這裡就用最簡單的話語,去解釋這一看上去非常神秘的設計模式,旨在讓大家用最短的時間去領會這些設計模式,並且,如果當你想應用的實踐中的時候,最起碼已經知道其思想,和在什麼地方應該去應用它,那麼,這個時候,我個人建議,你應該去深入的研究,這裡並不適合你去做深入的研究,當然,你可以在留言的地方進行留言,我們一起討論,總之,在部落格中,我就不做詳細的闡述了。
好的,我們閑話少敘,進入本次部落格的主題:原廠模式
原廠模式分為三種:
簡單工廠、抽象工廠、智能工廠
在前文中提到的內容,我們這裡就不累述,這裡主要說下,原廠模式,是為了能夠更好的封裝和抽象對象生產的這麼一種方式。工廠的目的在於判別介面最終被那個類所實現,產生執行個體的過程不再用new關鍵字,最終是類與類直接實現松耦合的目的,這也是為了我們以後更方面的維護代碼所做的工作。
真正意義的工廠:真正的JS工廠不是利用另外一個類來初始對象,, 而是使用一個子類按照相應的定義來完成類初始化任務。
最簡單的例子,我們抽象介面和實作類別都實現同樣的介面,在具體實作類別中實現具體的代碼。
這裡再次給一個定義:工廠是一個把成員變數初始話的任務交給子類中進行的類
低耦合,高內聚是原廠模式的初衷,這裡,我個人並不推薦什麼情況下都用原廠模式,因為任何一個設計模式都只會讓程式更複雜,如果用不好的話,相反會適得其反,所以,當我們項目並不是特別大的時候,並不適合用原廠模式,相反,我們用最直接的new出對象來是最好的解決方案。
這裡貌似談到了中庸的思想啊,沒有最好,只有最適合,所以各位根據具體情況,具體分析吧。