鍍金池/ 教程/ HTML/ 編寫設(shè)計(jì)模式
中介者模式
MVVM
亨元模式
設(shè)計(jì)模式分類概覽表
ES Harmony
組合模式
CommonJS
jQuery 插件的設(shè)計(jì)模式
外觀模式
觀察者模式
建造者模式
構(gòu)造器模式
外觀模式
簡(jiǎn)介
AMD
原型模式
設(shè)計(jì)模式的分類
觀察者模式
命名空間模式
代理模式
編寫設(shè)計(jì)模式
適配器模式
反模式
什么是設(shè)計(jì)模式
模塊化模式
MVC
Mixin 模式
裝飾模式
設(shè)計(jì)模式的結(jié)構(gòu)
單例模式
迭代器模式
命令模式
工廠模式
MVP
暴露模塊模式
惰性初始模式

編寫設(shè)計(jì)模式

雖然本書的目標(biāo),針對(duì)的是新的設(shè)計(jì)模式,但對(duì)設(shè)計(jì)模式是怎樣編寫的有一個(gè)根本的理解后,會(huì)讓我們受益匪淺。對(duì)于初學(xué)者來說,對(duì)于為什么需要一個(gè)模式背后的推理,我們可以得到更深的理解。我們同時(shí)也會(huì)學(xué)習(xí)到當(dāng)我們?cè)谥匾曃覀冏约旱男枨蟮臅r(shí)候,如何區(qū)分一種模式(或原模式)。

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

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

當(dāng)我們?cè)趯ふ艺J(rèn)為可能使用某種設(shè)計(jì)模式的代碼的時(shí)候,應(yīng)該考慮寫下的代碼的一些方面,我們相信屬于一個(gè)特定的現(xiàn)有格局或一組模式。

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

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

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

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

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

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

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

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