出差途中看了幾篇aop的文章,總算對aop有了乙個初步的了解,是乙個非常不錯的技術,傳統程式設計技術無法解決的橫切(crosscutting)問題在aop中可以得到很好的解決。簡單比較一下現有的幾種技術soa/cbd/aop/oo。
soa - service oriented architecture (面向服務的架構)
cbd - component based development (基於構件的開發)
aop - aspect oriented porgramming (面向方面的程式設計)
oo - object oriented (analysis / design / programming) (物件導向的分析/設計/程式設計)
這幾種技術本質上體現的都是我們過去幾十年軟體開發的最佳實踐經驗。
1) 模組化 - 把複雜的系統(或問題)分而治之,內聚程度比較高的內容組合在一起形成模組,整個系統就是由一系列大大小小的模組所組成。跟複雜的系統相比,單個模組的粒度要小得多,便於管理和開發。這幾種技術中,構件(component)、服務(service)就是一種物件(object),它們的模組化概念比較一致;aop則是解決系統中的橫切問題,把橫切相關的解決方案模組化在乙個方面(aspect)中。
2) 抽象 - 這幾種技術都是針對某一類具有普遍性的問題提出乙個通用的解決方案。但是他們的抽象層次不一樣:
業務流程 - service 是在業務層面上對業務能力的一種抽象,由 service 可以快速地組裝出新的業務流程。
系統架構 - component 是構成乙個系統的元素,可以是具有一定功能的子系統;從系統層面來看架構的話,類級別的物件粒度就太小了,構件的粒度比較合適。
** - class / aspect 都是在**這一級別的概念,只是兩者解決問題的方法不一樣。
看到過一些材村料中有用 uml 表示 aop 概念的,需要花些時間去研究一下如何用 visual modeling 來表示 aosd (aspect oriented software dvelopment)。
有興趣了解 aop 的話,去 www.ibm.com/developerworks/cn 搜尋 aop@work 就可以找到很多介紹 aop 技術的系列文章。
關於SOA CBD AOP OO的體會
最近一直研究aop,如今總算對aop有了乙個初步的了解,是乙個非常不錯的技術,傳統程式設計技術無法解決的橫切 crosscutting 問題在aop中可以得到很好的解決。簡單比較一下現有的幾種技術soa cbd aop oo。soa service oriented architecture 面向服...
關於SOA CBD AOP OO的體會
最近一直研究aop,如今總算對aop有了乙個初步的了解,是乙個非常不錯的技術,傳統程式設計技術無法解決的橫切 crosscutting 問題在aop中可以得到很好的解決。簡單比較一下現有的幾種技術soa cbd aop oo。soa service oriented architecture 面向服...
關於結構體
關鍵字struct表示定義的是結構體的資料型別,緊隨其後的識別符號student是結構體型別名。花括號中依次列舉該型別的每個成員資料型別及其名稱,每個成員的資料型別可以是基本資料型別或者自定義資料型別,但是不能重名。結構的成員也成為域。結構體型別的定義以乙個分號結束。由於資料型別僅是為變數分配儲存空...