過程、對象、切面

首先了解一個關鍵詞Soc。
Soc:Separation of concerns 關注分離點, 在不一樣的場景SOC有着不一樣的含義
  • Soc是一個過程:Soc是一個將功能點分解以儘可能減少功能交叉的過程;
  • Soc是軟件開發的一個基本規則
  • Soc是一個指標:關注點的分離度
Soc的實踐體如今不一樣的編程模型(Programming paradigm),編程模型幫助開發者提升關注點分離度,過程化編程模型把關注點分解成多個過程。
面向對象編程中,關注點抽象爲對象/類。面向方面編程模型中,將關注點分解爲多個「方面」。
 

 

(重點說明一下AOP)
 
AOP Aspect Oriented Programming 面向切面編程。經過預編譯方式和運行期間動態代理實現程序功能的統一維護的一種技術。
 
AOP是OOP的延續。利用AOP能夠對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度下降,提升程序的可複用性,同時提升開發的效率。
 
主要功能:日誌記錄,性能統計,安全控制,事務處理,異常處理等等。
 
主要意圖:將日誌記錄,性能統計,安全控制,事務處理,異常處理等等代碼從業務邏輯代碼中劃分出來,經過對這些行爲的分離,能夠將它們獨立到非主導業務邏輯的方法中,進而改變這些行爲的時候不影響業務邏輯的代碼。
 
做用:   面向對象編程OOP是關注將需求功能劃分爲不一樣的而且相對獨立,封裝良好的類,並讓它們有着屬於本身的行爲,依靠繼承和多態等來定義 彼此的關係的話;
            面向切面編程AOP則是但願可以將通用需求功能從不相關的類當中分享出來,可以使得不少類共享一個行爲,一旦發生變化,沒必要修改不少類,而只須要修改這個行爲便可;
 
動態橫切:它是經過切入點(point cut)和連接點(joint point)建立行爲的過程;
靜態橫切:是經過在不修改原有職責的基礎上增長新的職責;以往咱們用過類的繼承來實現,但繼承是種強依賴關係,不使用它,咱們使用靜態橫切,就是脫離繼承關係,使用其餘手段將它們關聯起來。
在Asp.Net MVC中經常使用到的動態切面(橫切)技術是Filter(Attribute)過濾器。
相關文章
相關標籤/搜索