1 spring AOP- 面向切面編程

編程範式概覽

  • 面向過程編程
  • 面向對象編程
  • 函數式編程
  • 事件驅動編程
  • 面向切面編程

AOP是什麼

  1. 是一種編程範式,不是編程語言
  2. 解決特定問題,不能解決所有問題
  3. 是OOP的補充,不是替代

AOP的初衷

DRY: Don’t Repeat Yourself (不要寫重複的代碼)
SoC: Separation of Concerns (關注點分離)
關注點分離可以有很多種:

  • 水平分離:展示層–> 服務層–>持久層
  • 垂直分離:從業務模塊劃分(訂單、庫存等)
  • 切面分離:分離功能性需求與非功能性需求

使用AOP的好處

  • 集中處理某一關注點/橫切邏輯
  • 可以很方便地添加/刪除關注點
  • 侵入性少,增強代碼可讀性及可維護性

AOP的應用場景

  • 權限控制
  • 緩存控制
  • 事務控制
  • 審計日誌
  • 性能監控
  • 分佈式追蹤
  • 異常處理
  • 等等

支持AOP的編程語言

Java、.Net 、 c/c++、 Ruby、Python、PHP…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章