在javascript中,設(shè)計(jì)模式 是解決軟件開發(fā)某些特定問題而提出的一些解決方案也可以理解成解決問題的一些思路。通過設(shè)計(jì)模式可以幫助我們增強(qiáng)代碼的可重用性、可擴(kuò)充性、 可維護(hù)性、靈活性好。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
什么是設(shè)計(jì)模式?
設(shè)計(jì)模式(Design pattern) 是解決軟件開發(fā)某些特定問題而提出的一些解決方案也可以理解成解決問題的一些思路。通過設(shè)計(jì)模式可以幫助我們增強(qiáng)代碼的可重用性、可擴(kuò)充性、 可維護(hù)性、靈活性好。我們使用設(shè)計(jì)模式最終的目的是實(shí)現(xiàn)代碼的 高內(nèi)聚 和 低耦合。
什么是高內(nèi)聚和低耦合?
舉例一個(gè)現(xiàn)實(shí)生活中的例子,例如一個(gè)公司,一般都是各個(gè)部門各司其職,互不干涉。各個(gè)部門需要溝通時(shí)通過專門的負(fù)責(zé)人進(jìn)行對接。在軟件里面也是一樣的 一個(gè)功能模塊只是關(guān)注一個(gè)功能,一個(gè)模塊最好只實(shí)現(xiàn)一個(gè)功能。這個(gè)是所謂的內(nèi)聚,模塊與模塊之間、系統(tǒng)與系統(tǒng)之間的交互,是不可避免的, 但是我們要盡量減少由于交互引起的單個(gè)模塊無法獨(dú)立使用或者無法移植的情況發(fā)生, 盡可能多的單獨(dú)提供接口用于對外操作, 這個(gè)就是所謂的低耦合
設(shè)計(jì)原則
單一職責(zé)原則(SRP)
一個(gè)對象或方法只做一件事情。如果一個(gè)方法承擔(dān)了過多的職責(zé),那么在需求的變遷過程中,需要改寫這個(gè)方法的可能性就越大。
應(yīng)該把對象或方法劃分成較小的粒度
最少知識原則(LKP)
一個(gè)軟件實(shí)體應(yīng)當(dāng) 盡可能少地與其他實(shí)體發(fā)生相互作用
應(yīng)當(dāng)盡量減少對象之間的交互。如果兩個(gè)對象之間不必彼此直接通信,那么這兩個(gè)對象就不要發(fā)生直接的 相互聯(lián)系,可以轉(zhuǎn)交給第三方進(jìn)行處理
開放-封閉原則(OCP)
軟件實(shí)體(類、模塊、函數(shù))等應(yīng)該是可以 擴(kuò)展的,但是不可修改
當(dāng)需要改變一個(gè)程序的功能或者給這個(gè)程序增加新功能的時(shí)候,可以使用增加代碼的方式,盡量避免改動程序的源代碼,防止影響原系統(tǒng)的穩(wěn)定
JavaScript中常見的十五種設(shè)計(jì)模式
1、單例模式
2、策略模式
3、代理模式
4、迭代器模式
5、發(fā)布—訂閱模式
6、命令模式
7、組合模式
8、模板方法模式
9、享元模式
10、職責(zé)鏈模式
11、中介者模式
12、裝飾者模式
13、狀態(tài)模式
14、適配器模式
15、外觀模式
【推薦學(xué)習(xí):javascript高級教程】