從我們剛開始學編程開始,面向?qū)ο缶捅唤蚪驑返揽琅#^萬物皆對象罕偎,我們從顫顫巍巍開始認識到這個東西,繼承京闰,封裝颜及,多態(tài)。到用成萬行甚至上十萬行代碼去理解它蹂楣,最后終于開始理解它俏站,但是隨著時間的推移,我們慢慢的發(fā)現(xiàn)它的各種弊端痊土,依賴性肄扎,耦合性,可維護性,我們開始尋求又沒有更好的解決方法犯祠,后來開始接觸新的思想旭等,切面編程,先了解下它的定義
AOP為Aspect Oriented Programming的縮寫衡载,意為:面向切面編程搔耕,通過預編譯方式和運行期動態(tài)代理實現(xiàn)程序功能的統(tǒng)一維護的一種技術(shù)。
AOP與OOP是面向不同領(lǐng)域的兩種設(shè)計思想痰娱。
OOP(面向?qū)ο缶幊蹋┽槍I(yè)務處理過程的實體及其屬性和行為進行抽象封裝弃榨,以獲得更加清晰高效的邏輯單元劃分。
OC是一種非常弱的語言梨睁,相比java來講鲸睛,后來蘋果推出了新的語言,Swift, ? Swift 中令人耳目一新的『面向協(xié)議編程』在 2015 年 WWDC 上一經(jīng)推出坡贺,街頭巷尾都在熱情洋溢地討論著協(xié)議擴展(protocol extensions)---這一激動人心的語言新特性, 那我們的OC就真得就無藥可救了么官辈?我們?nèi)绾蝸韺崿F(xiàn)面向協(xié)議的編程思想?
我們知道一個工程的基礎(chǔ)服務基本可以劃分為 賬戶服務遍坟,資源服務钧萍,配置服務,數(shù)據(jù)緩存服務等等政鼠,如果按照 面向?qū)ο蟮乃枷敕缡荩褪敲總€服務創(chuàng)建一個對象,那我們可不可以換一種思想公般,每個創(chuàng)建一個協(xié)議呢万搔,或者創(chuàng)建一個總的協(xié)議(里面分為各種服務協(xié)議), 只要我遵守這個協(xié)議官帘,就能拿到這個協(xié)議所有的功能和屬性呢,這樣當發(fā)生變動的時候瞬雹,我們只需要把協(xié)議指向新的類,這個新的類就具有這個協(xié)議的功能和屬性刽虹,是不是體現(xiàn)強大個可遷移性酗捌,可維護性。 這就是六大設(shè)計模式之 依賴倒置原則涌哲,低耦合胖缤,強內(nèi)聚不是一句空話。