資料介紹
架構設計是一個非常大的話題,不管寫幾篇文章,接觸到的始終只是冰山一角,更多的是實踐中去體會。這篇文章主要介紹面向對象OO、面向方面AOP和面向服務SOA這三個要素在架構設計中的位置與作用。
架構設計有三個維度,或者說是我們在考慮架構時需要思考三個方向。
這三個維度分別為面向對象、面向方面、面向服務。
這三個維度可以看作是正交的,但不同維度會互相印證,互相支撐,整個架構的示意圖如圖所示。

圖:架構三維度結構圖
面向對象
面向對象技術最初是從面向對象的程序設計開始的,它的出現(xiàn)以上世紀60年代Simula語言為標志,并在Smalltalk語言的完善和標準化過程中得到更多的擴展和對以前思想的重新注解。
上世紀80年代中后期,面向對象程序設計逐漸成熟,被計算機界理解和接受,人們又開始進一步考慮面向對象的開發(fā)問題。直到現(xiàn)在,面向對象已經(jīng)成為一種非常流行的編程方式,以及軟件設計的架構。
面向對象提出有三個主要目標:重用性、靈活性和擴展性,強調對象的“抽象”、“封裝”、“繼承”和“多態(tài)”。它能讓人們以更加接近于現(xiàn)實世界的方式來思考程序,這點可以說是面向對象最大的進步。
在OO思想的運用上,業(yè)界出現(xiàn)了很多好的經(jīng)驗與技巧,從而涌現(xiàn)出大量的設計模式,可以說面向對象是系統(tǒng)分析與設計時的一個很重要的方面。
面向方面
面向方面最初來源于hook技術,本質上就是滿足擴展的需求,可以在程序中自由擴展功能。
面向方面不僅僅是一門編程技術,同樣也是一種架構設計的思路。如果說OO是縱向地分析、切割整個系統(tǒng),那么可以認為AOP是橫向地對系統(tǒng)作切片。
簡單地理解,OO與AOP分別從兩個不同的角度給我們提供了分析系統(tǒng)的思路。面向方面可以彌補面向對象的缺陷,兩種方式有機的結合在一起,可以更加有效地對系統(tǒng)進行分析。
我們認為OO是接近于人類認識自然的思維方式,但對于東方而言卻并不一定是這樣的。
當西方人看到一個復雜系統(tǒng)的時候,只會有一種思路,就是“分解”,將系統(tǒng)分解成一塊一塊,然后每個部分進行研究。
當東方人看到一個復雜系統(tǒng)的時候,更多地會關注系統(tǒng)中存在的關系,將系統(tǒng)作為一個有機的整體進行研究,這也是東方和西方在事物看法上存在的差異。
這兩種思維方式都沒有問題,如果結合起來分析問題,解決問題會更好。面向對象與面向方面也同樣如此,都能對應到人類認識自然的思維方式上。
面向服務
面向服務可以說是最近炒得比較火熱的概念。包括現(xiàn)在提到的SaaS(Software as a service),軟件即服務。準確而言,面向服務不僅僅是軟件行業(yè)的概念,這個要從社會的產(chǎn)業(yè)結構說起。
社會產(chǎn)業(yè)總共分為三個,第一產(chǎn)業(yè)農(nóng)業(yè),第二產(chǎn)業(yè)工業(yè),第三產(chǎn)業(yè)服務業(yè)。最早社會的主要產(chǎn)業(yè)是第一產(chǎn)業(yè)農(nóng)業(yè),將近有幾萬年的歷史。
十八世紀下半葉在英國開始的工業(yè)革命,對人們的生活產(chǎn)生了根本性的影響,社會的主要產(chǎn)業(yè)成了第二產(chǎn)業(yè)工業(yè)。
現(xiàn)在仍然屬于工業(yè)時代,或者有人說的“后工業(yè)時代”。而在后工業(yè)時代,社會的經(jīng)濟體制必定要向第三產(chǎn)業(yè)服務業(yè)逐漸轉型。面向服務其實是社會經(jīng)濟體制重心的一種遷移。
還是說回到軟件行業(yè),社會的主要產(chǎn)業(yè)將轉變成服務業(yè),自然軟件行業(yè)也會出現(xiàn)對應的變化,那就是這里提到的面向服務。面向服務今后會影響到軟件的交付模式,會對整個軟件行業(yè)的體制產(chǎn)生影響。
而說到架構層面,面向服務是系統(tǒng)發(fā)布功能的一種方式。并且基于這種方式下不同的系統(tǒng)之間能有效地通信、協(xié)作。常見的實現(xiàn)技術就是Web Service。
軟件全局觀
軟件架構設計的三個維度:面向對象、面向方面、面向服務。
最年長的一個維度就是面向對象,發(fā)展了好幾十年,也是相對而言比較成熟的一個維度。它解決的問題是系統(tǒng)內部結構的設計。
面向方面思想的提出能夠彌補面向對象的缺陷。面向對象的方式不能實現(xiàn)橫切關注點的分離,而面向方面正是為了解決這個問題。面向方面與面向對象一樣都是解決系統(tǒng)內部結構的設計。
面向服務更多的是涉及到系統(tǒng)的外部,簡單地說就是發(fā)布功能。它并不關注系統(tǒng)內部結構的實現(xiàn),所以說面向服務與面向對象或者面向方面并不沖突。
這三個維度并不是絕對孤立的,它們之間會互相影響、制約,相互發(fā)展的。我們在分析架構的時候需要同時考慮到這三個維度的問題,這樣有助于我們設計出更加優(yōu)秀的架構。
?
架構設計有三個維度,或者說是我們在考慮架構時需要思考三個方向。
這三個維度分別為面向對象、面向方面、面向服務。
這三個維度可以看作是正交的,但不同維度會互相印證,互相支撐,整個架構的示意圖如圖所示。

圖:架構三維度結構圖
面向對象
面向對象技術最初是從面向對象的程序設計開始的,它的出現(xiàn)以上世紀60年代Simula語言為標志,并在Smalltalk語言的完善和標準化過程中得到更多的擴展和對以前思想的重新注解。
上世紀80年代中后期,面向對象程序設計逐漸成熟,被計算機界理解和接受,人們又開始進一步考慮面向對象的開發(fā)問題。直到現(xiàn)在,面向對象已經(jīng)成為一種非常流行的編程方式,以及軟件設計的架構。
面向對象提出有三個主要目標:重用性、靈活性和擴展性,強調對象的“抽象”、“封裝”、“繼承”和“多態(tài)”。它能讓人們以更加接近于現(xiàn)實世界的方式來思考程序,這點可以說是面向對象最大的進步。
在OO思想的運用上,業(yè)界出現(xiàn)了很多好的經(jīng)驗與技巧,從而涌現(xiàn)出大量的設計模式,可以說面向對象是系統(tǒng)分析與設計時的一個很重要的方面。
面向方面
面向方面最初來源于hook技術,本質上就是滿足擴展的需求,可以在程序中自由擴展功能。
面向方面不僅僅是一門編程技術,同樣也是一種架構設計的思路。如果說OO是縱向地分析、切割整個系統(tǒng),那么可以認為AOP是橫向地對系統(tǒng)作切片。
簡單地理解,OO與AOP分別從兩個不同的角度給我們提供了分析系統(tǒng)的思路。面向方面可以彌補面向對象的缺陷,兩種方式有機的結合在一起,可以更加有效地對系統(tǒng)進行分析。
我們認為OO是接近于人類認識自然的思維方式,但對于東方而言卻并不一定是這樣的。
當西方人看到一個復雜系統(tǒng)的時候,只會有一種思路,就是“分解”,將系統(tǒng)分解成一塊一塊,然后每個部分進行研究。
當東方人看到一個復雜系統(tǒng)的時候,更多地會關注系統(tǒng)中存在的關系,將系統(tǒng)作為一個有機的整體進行研究,這也是東方和西方在事物看法上存在的差異。
這兩種思維方式都沒有問題,如果結合起來分析問題,解決問題會更好。面向對象與面向方面也同樣如此,都能對應到人類認識自然的思維方式上。
面向服務
面向服務可以說是最近炒得比較火熱的概念。包括現(xiàn)在提到的SaaS(Software as a service),軟件即服務。準確而言,面向服務不僅僅是軟件行業(yè)的概念,這個要從社會的產(chǎn)業(yè)結構說起。
社會產(chǎn)業(yè)總共分為三個,第一產(chǎn)業(yè)農(nóng)業(yè),第二產(chǎn)業(yè)工業(yè),第三產(chǎn)業(yè)服務業(yè)。最早社會的主要產(chǎn)業(yè)是第一產(chǎn)業(yè)農(nóng)業(yè),將近有幾萬年的歷史。
十八世紀下半葉在英國開始的工業(yè)革命,對人們的生活產(chǎn)生了根本性的影響,社會的主要產(chǎn)業(yè)成了第二產(chǎn)業(yè)工業(yè)。
現(xiàn)在仍然屬于工業(yè)時代,或者有人說的“后工業(yè)時代”。而在后工業(yè)時代,社會的經(jīng)濟體制必定要向第三產(chǎn)業(yè)服務業(yè)逐漸轉型。面向服務其實是社會經(jīng)濟體制重心的一種遷移。
還是說回到軟件行業(yè),社會的主要產(chǎn)業(yè)將轉變成服務業(yè),自然軟件行業(yè)也會出現(xiàn)對應的變化,那就是這里提到的面向服務。面向服務今后會影響到軟件的交付模式,會對整個軟件行業(yè)的體制產(chǎn)生影響。
而說到架構層面,面向服務是系統(tǒng)發(fā)布功能的一種方式。并且基于這種方式下不同的系統(tǒng)之間能有效地通信、協(xié)作。常見的實現(xiàn)技術就是Web Service。
軟件全局觀
軟件架構設計的三個維度:面向對象、面向方面、面向服務。
最年長的一個維度就是面向對象,發(fā)展了好幾十年,也是相對而言比較成熟的一個維度。它解決的問題是系統(tǒng)內部結構的設計。
面向方面思想的提出能夠彌補面向對象的缺陷。面向對象的方式不能實現(xiàn)橫切關注點的分離,而面向方面正是為了解決這個問題。面向方面與面向對象一樣都是解決系統(tǒng)內部結構的設計。
面向服務更多的是涉及到系統(tǒng)的外部,簡單地說就是發(fā)布功能。它并不關注系統(tǒng)內部結構的實現(xiàn),所以說面向服務與面向對象或者面向方面并不沖突。
這三個維度并不是絕對孤立的,它們之間會互相影響、制約,相互發(fā)展的。我們在分析架構的時候需要同時考慮到這三個維度的問題,這樣有助于我們設計出更加優(yōu)秀的架構。
?
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- STM32軟件架構設計
- 嵌入式系統(tǒng)軟件架構設計
- 嵌入式軟件架構設計
- 嵌入式軟件架構設計
- 基于無線寬帶的林業(yè)監(jiān)控網(wǎng)絡架構設計方案 12次下載
- 復雜裝備的PHM數(shù)據(jù)體系架構設計方案 7次下載
- 深度:嵌入式系統(tǒng)的軟件架構設計!資料下載
- 藍牙Beacon的三個關鍵虛擬標準資料下載
- 三個被動元件的基礎知識及應用 20次下載
- 如何使用Autosar的進行整車電子電氣架構設計詳細方法概述 44次下載
- 關于MES與ERP的三個問題 5次下載
- BJT的三個工作區(qū)及圖解分析法的解析 34次下載
- 使用Simulink實現(xiàn)軟件架構設計 38次下載
- CFD軟件開發(fā)的三個階段 11次下載
- 嵌入式軟件架構設計 19次下載
- 芯片架構設計的關鍵要素 1.6k次閱讀
- 交換芯片架構設計 1.3k次閱讀
- 交換芯片架構設計 1.8k次閱讀
- SWE.2軟件架構設計 1.6k次閱讀
- bom架構是什么意思 探討B(tài)OM架構三個重要的問題 4.3k次閱讀
- 架構設計的主要內容是什么 2.9k次閱讀
- 架構與微架構設計 1.9k次閱讀
- Qt中的三個exec之間有什么聯(lián)系 3.6k次閱讀
- 如何寫一個架構設計 1.5k次閱讀
- 常見的軟件架構分層 1.1w次閱讀
- 嵌入式系統(tǒng)的軟件架構設計 4.9k次閱讀
- 幾種軟件架構設計的思維方式 5.4k次閱讀
- 干貨:20個MySQL開源數(shù)據(jù)庫架構設計原則 4.1k次閱讀
- 門羅隱匿交易的三個基礎技術解析 2.2k次閱讀
- PDF解析程序架構設計詳細 6.4k次閱讀
下載排行
本周
- 1冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 4次下載 | 10 積分
- 2安川A1000變頻器中文版說明書
- 20.16 MB | 3次下載 | 3 積分
- 3直流電路的組成和基本定律
- 1.67 MB | 2次下載 | 免費
- 4丹佛斯2800系列變頻器說明書
- 8.00 MB | 1次下載 | 5 積分
- 5PC8011同步開關型降壓3.5A單節(jié)鋰電池充電管理電路技術手冊
- 0.74 MB | 1次下載 | 免費
- 6ES7243E+ES8311音頻錄制與播放電路資料
- 0.06 MB | 1次下載 | 5 積分
- 7SDM02 激光測距模塊產(chǎn)品手冊
- 0.43 MB | 1次下載 | 免費
- 8SDFM 激光測距模塊模組手冊
- 0.54 MB | 1次下載 | 免費
本月
- 1CH341編程器軟件NeoProgrammer_2.2.0.10
- 20.47 MB | 170次下載 | 1 積分
- 22025智能家居傳感器市場分析及創(chuàng)新應用
- 3.11 MB | 43次下載 | 免費
- 3RV1126B系列開發(fā)板產(chǎn)品資料
- 4.19 MB | 18次下載 | 免費
- 4CH341編程軟件下載
- 2.50 MB | 16次下載 | 5 積分
- 5全志系列-米爾基于T153核心板開發(fā)板 四核異構、3路千兆網(wǎng),賦能多元化工業(yè)場景
- 3.05 MB | 12次下載 | 免費
- 6【開源】60余套STM32單片機、嵌入式Linux、物聯(lián)網(wǎng)、人工智能項目案例及入門學習資源包
- 10.55 MB | 8次下載 | 免費
- 7冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 4次下載 | 10 積分
- 8特斯拉MODEL S車載充電機主電路回路原理圖
- 0.81 MB | 4次下載 | 3 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233094次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191448次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183356次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81604次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73824次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論