面向切面程式設計AOP 在iOS中的實現

2021-07-05 08:14:02 字數 942 閱讀 2308

aop為aspect oriented programming的縮寫,意為:

面向切面程式設計

,通過預編譯

方式和執行期動態**實現程式功能的統一維護的一種技術。

我的理解就是將每個特定的物件需要執行的同樣的**提煉出來,然後動態的載入到每個物件中。

實現主要用到了兩個知識點,乙個是runtime程式設計,乙個是+(void)load{}函式,runtime主要使用了其中的方法交換函式

method_exchangeimplementations;

load函式主要是考慮到其特性,即+(void)load; 在objective-c執行時載入類或者category時被呼叫,適合將需要的執行時**新增。

假設需求:網路發生變化的時候,post網路變化狀態需要每乙個控制器物件新增觀察者,可以使用切面程式設計思想,簡化**

具體實現:

1.建立基於uiviewcontroller的類別aop,即uiviewcontroller+aop

2.重寫load方法,具體**如下

+(void

)load); }

void

swizzlemethod(class class,

seloriginalselector,

selswizzledselector)

else }

-(void

bool

)animated -(

void

bool

)animated -(

void

)noti:(

nsnotification

*)noti -(

void

bool

)animated

3.在pch檔案中定義

kpass和uiviewcontroller+aop

感謝諸位大牛的講解,略作歸納整理!

aop 面向切面程式設計

起源 研究人員就對物件導向思想的侷限性進行了分析。他們研究出了一種新的程式設計思想,借助這一思想或許可以通過減少 重複模組從而幫助開發人員提高工作效率。隨著研究的逐漸深入,aop也逐漸發展成一套完整的程式設計思想,各種應用aop的技術也應運而生。aop思想 定義乙個切面,在切面的縱向定義處理方法,處...

AOP面向切面程式設計

1 概念 面向切面程式設計,通過預編譯方式和執行期動態 實現程式功能的統一維護的一種技術。aop是oop的延續,利用aop可以對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度降低,提高程式的可重用性,同時提高了開發的效率 2 作用 1.解耦,將通用性的功能模組 與業務 解耦 ioc專...

AOP 面向切面程式設計

aop aspect oriented programming 即面向切面程式設計,可以說是oop object oriented programming 物件導向程式設計的補充和完善。面向切面程式設計是物件導向中的一種方式而已。在 執行過程中,動態嵌入其他 叫做面向切面程式設計。常見的使用場景 日...