1. 程式人生 > >常見的幾種JavaScript設計模式

常見的幾種JavaScript設計模式

設計模式是在軟體開發中,經過驗證的,用於解決在特定環境下,重複出現的特定的問題的解決方案。

在編寫JS程式碼的過程中,運用一定的設計模式可以讓我們的程式碼更加優雅、靈活。

每個設計模式的構成如下:

1、模式名稱:模式的一個好記的名字

2、環境和問題:描述在什麼環境下,出現什麼特定的問題

3、解決方案:描述如何解決問題

4、效果:描述應用模式後的效果,以及可能帶來的問題

簡單地說,模式就是一些經驗,一套場景/問題+解決方案。

為什麼要學習設計模式?

設計模式的種類較多,各個模式都有它對應的場景,不能武斷地認為某個模式就是最優解決方案。

通過學習這些設計模式,讓你找到“封裝變化”、“鬆耦合”、“針對介面程式設計”的感覺,從而設計出易維護、易複用、擴充套件性好、靈活性足的程式。

通過學習設計模式讓你領悟面向物件程式設計的思想(SOLID),到最後就可以拋棄設計模式。

把這些思想應用在你的程式碼中,寫出高內聚、低耦合、可擴充套件、易維護的程式碼了。

此時已然是心中無設計模式,而處處是設計模式了。

這就是學習設計模式的目的。

常見的幾種設計模式

單例模式

之所以叫做單例模式是因為它限定對於一個類,它他只允許有一個例項化物件。

經典的實現方式是,建立一個類,這個類包含一個方法,這個方法在沒有物件存在的情況下,將會建立一個新的例項物件。

如果物件存在,這個方法只是返回這個物件的引用。

介面卡模式

將一個類(物件)的介面(方法或屬性)轉化成客戶希望的另外一個介面。

介面卡模式使得原本由於介面不相容而不能一起工作的那些類(物件)可以一起工作。

觀察者模式

一個或者更多的觀察者對一個被觀察者的狀態感興趣,將自身的這種興趣通過附著自身的方式註冊在被觀察者身上。

當被觀察者發生變化,而這種便可也是觀察者所關心的,就會產生一個通知,這個通知將會被送出去,最後將會呼叫每個觀察者的更新方法。

當觀察者不在對被觀察者的狀態感興趣的時候,它們只需要簡單的將自身剝離即可。

代理模式

把一個物件的訪問交給另一個物件來操作。

為了保證當前物件的單一職責,而需要建立另一個物件來處理呼叫當前物件之前的一些邏輯以提高程式碼的效率,狀態判斷等。

模式並不是我們要追求的目標,我們的目標是寫出有生氣的程式碼,以有生氣的程式碼為目標去寫,你會發現有一些模式會自然而地出現在你的程式碼中。

這才是模式該用到的時候。

而且隨 著你經驗的增加,你會發現有一些新的模式自然產生,它與你用的語言,與你的所開發的應用,甚至與你的性格、信仰都有關係。

這時就你超越了大牛,擁有了你自己的模式語言,寫出了具備無名特質的程式碼,踏上了屬於你自己的程式設計永恆之道……

來源:千鋒HTML5