物件導向先生和他的兄弟姐妹們(二)——小議【OOP、COP、AOP、SOP】
從世界觀的角度可以認為:物件導向的基本哲學是認為世界是由各種各樣具有自己的運動規律和內部狀態的物件所組成的;不同物件之間的相互作用和通訊構成了完整的現實世界。因此,人們應當按照現實世界這個本來面貌來理解世界,直接通過物件及其相互關係來反映世界。這樣建立起來的系統才能符合現實世界的本來面目。
從方法學的角度可以認為:物件導向的方法是物件導向的世界觀在開發方法中的直接運用。它強調系統的結構應該直接與現實世界的結構相對應,應該圍繞現實世界中的物件來構造系統,而不是圍繞功能來構造系統(摘自——百度百科)先來看看OOP技術
OOP基礎 -- 介面與實現分離;OOP核心 -- 介面和實現分離的更高階昇華,使得在執行時可以動態根據條件來選擇隱藏在介面背後的實現;OOP表現形式 --類和繼承,OOP的主要目標是使系統物件化,良好物件化的系統,就是系統的各部分更加清晰,耦合度大大降低。
再來看看COP技術:
COP技術是建立在OOP技術之上的,它是OOP的進一步發展。類仍然是元件技術中一個基礎的概念,元件技術更核心的是介面。元件技術的主要目標是複用--粗粒度的複用,不是類的複用,而是元件的複用,如一個DLL,一箇中介軟體,甚至一個FrameWork。
2、OOP——AOP
AOP為Aspect OrientedProgramming的縮寫,意為:面向切面程式設計,可以通過預編譯方式和執行期動態代理實現在不修改原始碼的情況下給程式動態統一新增功能的一種技術。
AOP是OOP的延續和發展。
個人理解:
物件導向的程式設計思想的經典體現可以從Gof設計模式找到,設計模式中大多體現解耦的思想。將呼叫者和被呼叫者之間進行解耦。覺得這裡面有很多相似的地方。其實,從某種意義上來說有點GOf設計模式中的裝飾模式的感覺。
裝飾模式的定義:(DecoratorPattern,裝飾模式是在不必改變原類檔案和使用繼承的情況下,動態地擴充套件一個物件的功能。它是通過建立一個包裝物件,也就是裝飾來包裹真實的物件。)
用到何處?
通常AOP被用到日誌管理、異常處理、效能統計、安全控制、事務處理等系統功能的設計中。將將這些功能的程式碼從業務邏輯程式碼中劃分出來,通過對這些行為的分離,我們希望可以將它們獨立到非指導業務邏輯的方法中,進而改變這些行為的時候不影響業務邏輯的程式碼
哥倆對比:
OOP針對業務處理過程的實體及其屬性和行為進行抽象封裝,以獲得更加清晰高效的邏輯單元劃分。
AOP則是針對業務處理過程中的切面進行提取,它所面對的是處理過程中的某個步驟或階段,以獲得邏輯過程中各部分之間低耦合性的隔離效果。這兩種設計思想在目標上有著本質的差異
三幅圖看懂AOP(摘自51技術部落格)
1、傳統業務邏輯元件設計
2、面向切面的設計
3、AOP原理剖析
相關文章
- 物件導向(oop)物件OOP
- 如何吃透Python的物件導向(OOP)Python物件OOP
- PHP物件導向(OOP)—-分頁類PHP物件OOP
- iOS 開發之 OOA (物件導向分析) & OOD (物件導向設計)& OOP (物件導向程式設計)iOS物件OOP程式設計
- Python OOP 物件導向程式設計PythonOOP物件程式設計
- PHP5物件導向 OOP思維導圖PHP物件OOP
- Go物件導向程式設計OOP的實現Go物件程式設計OOP
- 物件導向小知識物件
- 二、Java之物件導向Java物件
- JavaScript物件導向精要(二)JavaScript物件
- 物件導向程式設計(OOP)的七大原則物件程式設計OOP
- OOP物件導向程式設計(Object-Oriented Programming)概述OOP物件程式設計Object
- 物件導向-物件導向思想物件
- java基礎二:物件導向Java物件
- Lua學習(二)物件導向物件
- POP,OOP,AOPOOP
- PHP 物件導向 (二)類屬性PHP物件
- Java正式上路之物件導向二Java物件
- Javascript 物件導向程式設計(二)JavaScript物件程式設計
- 【跟著我們學Golang】之物件導向Golang物件
- Kotlin 物件導向程式設計 (OOP) 基礎:類、物件與繼承詳解Kotlin物件程式設計OOP繼承
- 真的可以,用C語言實現物件導向程式設計OOPC語言物件程式設計OOP
- 小邵教你玩轉JS物件導向JS物件
- 程式導向與物件導向物件
- 物件導向與程式導向物件
- “程序導向”和“物件導向”物件
- 從物件導向到模式再到真正的物件導向 (轉)物件模式
- 物件導向物件
- Java課堂筆記(二):物件導向Java筆記物件
- 物件導向第二單元總結物件
- 《JavaScript物件導向精要》之二:函式JavaScript物件函式
- PHP物件導向中的重要知識點(二)PHP物件
- java的物件導向Java物件
- JavaScript的物件導向JavaScript物件
- php中的程式導向與物件導向PHP物件
- 物件導向,搞定物件物件
- PHP 物件導向 (九)物件導向三大特徵PHP物件特徵
- JAVA物件導向基礎--物件導向介紹Java物件