一.單例模式
單例模式也稱作為單子模式,更多的也叫做單體模式。為軟件設計中較為簡單但是最為常用的一種設計模式。 在JavaScript里,實現單例的方式有很多種,其中最簡單的一個方式是使用對象字面量的方法,其字面量里可以包含大量的屬性和方法。
要擴展該對象,可以添加自己的私有成員和方法,然后使用閉包在其內部封裝這些變量和函數聲明。樣例代碼如下:
二、工廠模式
工廠模式是由一個方法來決定到底要創建哪個類的實例,而這些實例經常都擁有相同的接口。這種模式主要用在所實例化的類型在編譯期並不能確定, 而是在執行期決定的情況。
實例:
這段代碼來自es5的new和構造器的相關說明, new本身只是一個對象的復制和改寫過程, 而具體會生成什么是由調用ObjectFactory時傳進去的參數所決定的。
三、 適配模式
適配模式主要是為了解決一些接口不兼容產生的解決方法。適配器可以在不修改這些不兼容接口的情況下給使用者提供統一的包裝過的適配接口。表面上又感覺和之前的門面模式比較像,均是對其他對象或者接口進行包裝再呈現,而適配器模式偏向的是解決兼容性問題,門面模式則偏向方便性為原則。
比如一個簡單的學生查詢學科成績的方法:
這是一個關於適配器來處理參數方面兼容的形式。 適配器模式意義上很簡單 - 適配,解決兼容問題。
例子二:jquery里邊的$選擇器需要改成$id才能和項目搭配,將$轉換成$id就很輕松了。如下:
四、外觀模式
外觀模式,是一種相對簡單而又無處不在的模式。外觀模式提供一個高層接口,這個接口使得客戶端或子系統更加方便調用。 用一段再簡單不過的代碼來表示: