前言
OOP與AOP
OOP(Object Oriented Programming,面向?qū)ο缶幊?,通過封裝、繼承將程序抽象為各個層次的對象,進而組合為模塊或者程序,達到了軟件工程中的重用性、靈活性、擴展性。程序的運行籠統(tǒng)地可以看為各層次對象之間的相互調(diào)用。
AOP(Aspect Oriented Programming,面向切面編程),將程序運行過程分解為一個個的切面,對特定的切面(某個步驟或者階段)進行提取,達到解耦各種不同邏輯代碼。
OOP是在程序分塊層面上進行考慮,而AOP則是在程序運行的切面上進行考慮。
可以將AOP理解為一種無損傷型的”切面”激光手術(shù)刀。OOP使屬性和行為被封裝為了一個嚴實、密不透風(fēng)的對象。想要改變由對象保護著的方法,就可以通過該激光手術(shù)刀,既不損傷對象(即是,不破壞對象的封裝),又不添加任何冗余的代碼,實現(xiàn)對原對象的方法的增強處理。
不得不說,AOP實在是一種巧妙的編程思想?。。浹a了OOP中一些難以解決的問題。例如,
1. 類應(yīng)該是純凈的,不應(yīng)含有與本身無關(guān)的邏輯。如日志跟蹤的邏輯代碼。這樣的類就可以更好地重用,更有效地被AOP的切入更多的業(yè)務(wù)邏輯, 舉例代碼如下:
/*
* 假如需要記錄某只柯基狗的日常,
* 我們總不能讓它自己來記錄吧??
* 如 下面的注釋了的方法
* 看起來是不是非常怪異,一只狗狗自己給自己寫日記
*/
class dog{
void run
延伸閱讀
- ssh框架
2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖
2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe
2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】
2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞
2017-07-26
- 從棧不平衡問題 理解 calling convention
2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明
2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解
2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析
2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二)
2017-07-26
學(xué)習(xí)是年輕人改變自己的最好方式