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