vue面向切面 感受面向切面程式設計

2021-10-13 01:35:54 字數 1186 閱讀 8331

什麼是面向切面

初聽面向切面程式設計時, 一頭霧水, 什麼是面向切面, 只聽說過物件導向(oop), 面向過程(po), 函式式程式設計(fp), 面向切面 ? 面向的難道是某乙個面?

面向搜尋引擎後才了解到, 面向切面是一種程式設計正規化(aspect oriented programming), 簡寫 aop, 特點是與原有邏輯解耦, 無侵入.

在後端開發工作中, 常見使用的場景是 斷點除錯/列印日誌/…,

而在前端開發工作中, 應用場景比較靈活多變, 可以是在一次表單提交中, 在表單提交前作表單驗證(前置), 或在表單提交後作資料重新整理/頁面跳轉/cookie 重新整理等 (後置), 也可以在提交的同時作資料埋點(橫向), 或是列印日誌。。。

對於外部的新加入的邏輯, 為了不破壞原有的業務邏輯, 我們就可以使用 aop 去組織**, 分離 [業務邏輯] 與 [瑣碎事務]

aop 的關鍵概念點

前置(before) 在目標方法執行前執行

後置(after) 在目標方法執行後執行

異常(after throwing)在目標方法丟擲異常時執行

環繞 (around) 在目標方法執行前後

前置執行函式

const before = function(fn, action) ;

後置執行函式

const after = function(fn, action) ;

異常執行函式

const throwing = function(fn, action) ;

return function(...args) );

} catch (err) );

環繞執行函式

const round = function(fn, actionbefore, actionafter) ;

使用場景 — 請求記錄

const request = config => axios.request(config);

const buttonclickfn = function ()

使用場景 — 異常處理

const originrequest = config => axios.request(config);

...異常上報

其它實現方式

實際上除了使用高階函式的方法實現, 我們還可以使用 es7 的裝飾器/ojbect.defineproperty 實現, 或基於原型鏈去實現

面向切面程式設計

1 是一種程式設計思想,不是知識點!aop為aspect oriented programming的縮寫,意為 面向切面程式設計,通過預編譯方式和執行期動態 實現程式功能的統一維護的一種技術。aop是oop的一種延伸,是oop的一種有益補充!利用oop可以對業務邏輯的各個部分進行隔離,降低 之間的耦...

面向切面程式設計

面向切面程式設計 aop是aspect oriented program的首字母縮寫 我們知道,物件導向的特點是繼承 多型和封裝。而封裝就要求將功能分散到不同的物件中去,這在軟體設計中往往稱為職責分配。實際上也就是說,讓不同的類設計不同的方法。這樣 就分散到乙個個的類中去了。這樣做的好處是降低了 的...

面向切面程式設計

面向切面程式設計 aop主要實現的目的是針對業務處理過程中的切面進行提取,它所面對的是處理過程中的某個步驟或階段,以獲得邏輯過程中各部分之間低耦合性的隔離效果。面向方面程式設計 這樣的名字並不是非常容易理解,且容易產生一些誤導。筆者不止一次聽到類似 oop ood11即將落伍,aop是新一代軟體開發...