javascript
基于javascripts的语法特性使用设计原则
文章目錄
- 設(shè)計(jì)原則
- 一.介紹
- 單一職責(zé)原則
- 開放封閉原則
- 李氏置換原則
- 接口隔離原則
- 依賴倒置原則
- 單一與開放原則的舉例說(shuō)明
- 二.從設(shè)計(jì)到模式
- 三.簡(jiǎn)介 23 種設(shè)計(jì)模式
設(shè)計(jì)原則
S O L(Liskov) I D 五大設(shè)計(jì)原則
- S單一職責(zé)原則
- O開放封閉原則
- L李氏置換原則
- I接口獨(dú)立原則
- D依賴導(dǎo)致原則
一.介紹
單一職責(zé)原則
一個(gè)程序只做好一件事,如果功能過(guò)于復(fù)雜就拆分開,每個(gè)部分保持獨(dú)立。
開放封閉原則
對(duì)修改封閉,對(duì)擴(kuò)展開放,這是軟件設(shè)計(jì)的終極目標(biāo)。即要設(shè)計(jì)一種機(jī)制,當(dāng)需求發(fā)生變化時(shí),根據(jù)這種機(jī)制擴(kuò)展代碼,而不是修改原有的代碼。
李氏置換原則
子類能覆蓋父類,父類能出現(xiàn)的地方子類就能出現(xiàn)。JS 中子類繼承父類的場(chǎng)景較少,又不是強(qiáng)類型語(yǔ)言,因此體現(xiàn)較少。
接口隔離原則
保持接口的單一獨(dú)立,避免出現(xiàn)“胖接口”。類似于單一職責(zé)原則,只不過(guò)前者說(shuō)的比較統(tǒng)一,后者是單獨(dú)對(duì)接口的規(guī)定。JS 中沒有接口,因此體現(xiàn)較少。
依賴倒置原則
面向接口編程,依賴于抽象而不依賴于具體。寫代碼時(shí)用到具體類時(shí),不與具體類交互,而與具體類的上層接口交互。
單一與開放原則的舉例說(shuō)明
// 加載圖片 function loadImg(src) {var promise = new Promise(function (resolve, reject) {var img = document.createElement('img')img.onload = function () {resolve(img)}img.onerror = function () {reject('圖片加載失敗')}img.src = src})return promise }var src = 'https://www.imooc.com/static/img/index/logo_new.png' var result = loadImg(src)result.then(function (img) { // 單一的then的原則console.log('img.width', img.width)return img }).then(function (img) {console.log('img.height', img.height) }).catch(function (ex) {// 統(tǒng)一捕獲異常console.log(ex) })- 單一職責(zé)原則:每個(gè)then中的邏輯只做好一件事,如果要做多個(gè)就用多個(gè)then
- 開放封閉原則:如果這個(gè)需求要修改,那去擴(kuò)展then即可,現(xiàn)有的邏輯不用修改,即對(duì)擴(kuò)展開放、對(duì)修改封閉
其實(shí) S 和 O 是相符現(xiàn)成的,相互依賴;開放封閉原則的好處不止于此,從整個(gè)軟件開發(fā)流程看,減少現(xiàn)有邏輯的更改,也會(huì)減少測(cè)試的成本;
后三個(gè)原則是基于高級(jí)面向?qū)ο笳Z(yǔ)言語(yǔ)法的(如 java),找不到太合適的例子,在js中就根據(jù)場(chǎng)景應(yīng)用到實(shí)際項(xiàng)目中,而不是全部硬使用;
二.從設(shè)計(jì)到模式
“設(shè)計(jì)”和“模式”應(yīng)該分開看。
- “設(shè)計(jì)”即設(shè)計(jì)原則、設(shè)計(jì)思想;
- “模式”即一些固話了的符合設(shè)計(jì)原則的既定方式、成型的可套用的模板。
現(xiàn)有“設(shè)計(jì)”后有“模式”,因此應(yīng)該“從設(shè)計(jì)到模式”,不能將“設(shè)計(jì)模式”作為一個(gè)詞來(lái)稱呼。根據(jù)這種設(shè)計(jì)到形成固有模式的思想來(lái)學(xué)習(xí)設(shè)計(jì)模式,代入到學(xué)習(xí)設(shè)計(jì)模式中,幫助更好的理解;
三.簡(jiǎn)介 23 種設(shè)計(jì)模式
以下是所有 23 種設(shè)計(jì)模式。一些是前端常用且能找到經(jīng)典使用場(chǎng)景的,一些是不常用或者找不到代表性的使用場(chǎng)景的。
- 創(chuàng)建型模式
- 工廠模式(工廠方法模式,抽象工廠模式,建造者模式)
- 單例模式
- 原型模式
- 結(jié)構(gòu)型模式
- 適配器模式
- 裝飾器模式
- 代理模式
- 外觀模式
- 橋接模式
- 組合模式
- 享元模式
- 行為型模式
- 策略模式
- 模板方法模式
- 觀察者模式
- 迭代器模式
- 職責(zé)連模式
- 命令模式
- 備忘錄模式
- 狀態(tài)模式
- 訪問者模式
- 中介者模式
- 解釋器模式
總結(jié)
以上是生活随笔為你收集整理的基于javascripts的语法特性使用设计原则的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 淘宝天猫商家运营,运营能力提升,淘宝竞争
- 下一篇: git使用