JavaScript 編寫設(shè)計模式

2018-08-02 16:23 更新

編寫設(shè)計模式

雖然本書的目標(biāo),針對的是新的設(shè)計模式,但對設(shè)計模式是怎樣編寫的有一個根本的理解后,會讓我們受益匪淺。對于初學(xué)者來說,對于為什么需要一個模式背后的推理,我們可以得到更深的理解。我們同時也會學(xué)習(xí)到當(dāng)我們在重視我們自己的需求的時候,如何區(qū)分一種模式(或原模式)。

要編寫好的模式,是一種極具挑戰(zhàn)性的任務(wù)。模式不僅僅需要對終端用戶提供數(shù)量可觀的材料,還要能夠說明為什么需要這種模式。

在讀過前續(xù)章節(jié)-什么是模式以后,我們可能會認為足夠幫助我們?nèi)ケ鎰e我們在非標(biāo)準條件下看到的模式。事實上這并非完全正確。這并不總是很清楚,如果我們正在尋找的一段代碼,出現(xiàn)像它一樣符合的一組模式,或只是偶然發(fā)生。

當(dāng)我們在尋找認為可能使用某種設(shè)計模式的代碼的時候,應(yīng)該考慮寫下的代碼的一些方面,我們相信屬于一個特定的現(xiàn)有格局或一組模式。

在很多模式分析的案例中,我們會發(fā)現(xiàn),正巧看到了那些具有良好的原則和設(shè)計實踐,而這些可能突然引起對模式的覆蓋規(guī)則。記住-既不相互作用,也沒有定義規(guī)則的解決方案模式。、

如果敢于嘗試編寫自己的設(shè)計模式的道路,我推薦從其他那些已經(jīng)過來之人學(xué)習(xí),學(xué)習(xí)他們好的方面?;〞r間從大量不同的設(shè)計模式描述中吸取信息,并找到對你有意義的。

探索結(jié)構(gòu)和語義-可以通過檢查交互和你感興趣的模式的上下文,因此你可以標(biāo)示出運用有用的配置,將模式組織在一起的原則。 

一旦我們暴露了自己豐富的模式文獻資料,我們不妨使用現(xiàn)有的格式,開始寫我們的模式,并看看我們是否能集思廣益,打開新思路,對它進行改進或把我們的想法進行整合。 

一個開發(fā)者的例子,該例子的作者是近幾年的Christian Heilmann,他在對已存在的模式的基礎(chǔ)上做了一些基本的改變,以此創(chuàng)建了暴露模塊模式(該模式在本書后續(xù)部分會講到)。 

對于那些對創(chuàng)建新設(shè)計模式的人,我對他們有如下的建議:

  • 模式是否實用?: 確保這個模式能夠?qū)σ恍┏R姷膯栴}有明確的解決方案,而不是臨時的解決方案。
  • 保持最佳實踐: 我們的設(shè)計需要以最佳實踐中所獲得的理解作為基礎(chǔ)。
  • 設(shè)計模式對用戶來說應(yīng)該是清晰的: 設(shè)計模式必須對任何形式的用戶體驗都是清晰的。 因為設(shè)計模式主要服務(wù)于開發(fā)者們,所以不能強迫他們?nèi)ジ淖冊瓉淼男袨?,那樣開發(fā)者們才會去使用這個模式。
  • 獨創(chuàng)力不是設(shè)計模式的關(guān)鍵: 當(dāng)我們在設(shè)計一個模式的時候,我們既不需要是發(fā)明者,也不需要去擔(dān)心是否是其他模式的子集。如果某個想法有很強的實用性,那么這就是一個創(chuàng)造新模式的機會。
  • 需要有幾個有說服力的例子: 一個好的設(shè)計模式需要有一個有說服力的例子來展示這個模式是成功的。為了廣泛使用這個設(shè)計模式,這些例子需要展示良好的設(shè)計原則。

在創(chuàng)造一個新的設(shè)計模式的時候,在通用性,特殊性和可用性之間有一個微妙的平衡點。如果新的模式覆蓋了應(yīng)用中最多的可能情況,那么這個模式應(yīng)該是良好的。我希望通過這段簡介能夠?qū)ο聜€章節(jié)內(nèi)容的學(xué)習(xí)有所幫助。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號