資料介紹
架構(gòu)設(shè)計(jì)是一個(gè)非常大的話題,不管寫幾篇文章,接觸到的始終只是冰山一角,更多的是實(shí)踐中去體會(huì)。這篇文章主要介紹面向?qū)ο驩O、面向方面AOP和面向服務(wù)SOA這三個(gè)要素在架構(gòu)設(shè)計(jì)中的位置與作用。
架構(gòu)設(shè)計(jì)有三個(gè)維度,或者說是我們?cè)诳紤]架構(gòu)時(shí)需要思考三個(gè)方向。
這三個(gè)維度分別為面向?qū)ο?、面向方面、面向服?wù)。
這三個(gè)維度可以看作是正交的,但不同維度會(huì)互相印證,互相支撐,整個(gè)架構(gòu)的示意圖如圖所示。
圖:架構(gòu)三維度結(jié)構(gòu)圖
面向?qū)ο?br /> 面向?qū)ο蠹夹g(shù)最初是從面向?qū)ο蟮某绦蛟O(shè)計(jì)開始的,它的出現(xiàn)以上世紀(jì)60年代Simula語(yǔ)言為標(biāo)志,并在Smalltalk語(yǔ)言的完善和標(biāo)準(zhǔn)化過程中得到更多的擴(kuò)展和對(duì)以前思想的重新注解。
上世紀(jì)80年代中后期,面向?qū)ο蟪绦蛟O(shè)計(jì)逐漸成熟,被計(jì)算機(jī)界理解和接受,人們又開始進(jìn)一步考慮面向?qū)ο蟮拈_發(fā)問題。直到現(xiàn)在,面向?qū)ο笠呀?jīng)成為一種非常流行的編程方式,以及軟件設(shè)計(jì)的架構(gòu)。
面向?qū)ο筇岢鲇腥齻€(gè)主要目標(biāo):重用性、靈活性和擴(kuò)展性,強(qiáng)調(diào)對(duì)象的“抽象”、“封裝”、“繼承”和“多態(tài)”。它能讓人們以更加接近于現(xiàn)實(shí)世界的方式來思考程序,這點(diǎn)可以說是面向?qū)ο笞畲蟮倪M(jìn)步。
在OO思想的運(yùn)用上,業(yè)界出現(xiàn)了很多好的經(jīng)驗(yàn)與技巧,從而涌現(xiàn)出大量的設(shè)計(jì)模式,可以說面向?qū)ο笫窍到y(tǒng)分析與設(shè)計(jì)時(shí)的一個(gè)很重要的方面。
面向方面
面向方面最初來源于hook技術(shù),本質(zhì)上就是滿足擴(kuò)展的需求,可以在程序中自由擴(kuò)展功能。
面向方面不僅僅是一門編程技術(shù),同樣也是一種架構(gòu)設(shè)計(jì)的思路。如果說OO是縱向地分析、切割整個(gè)系統(tǒng),那么可以認(rèn)為AOP是橫向地對(duì)系統(tǒng)作切片。
簡(jiǎn)單地理解,OO與AOP分別從兩個(gè)不同的角度給我們提供了分析系統(tǒng)的思路。面向方面可以彌補(bǔ)面向?qū)ο蟮娜毕?,兩種方式有機(jī)的結(jié)合在一起,可以更加有效地對(duì)系統(tǒng)進(jìn)行分析。
我們認(rèn)為OO是接近于人類認(rèn)識(shí)自然的思維方式,但對(duì)于東方而言卻并不一定是這樣的。
當(dāng)西方人看到一個(gè)復(fù)雜系統(tǒng)的時(shí)候,只會(huì)有一種思路,就是“分解”,將系統(tǒng)分解成一塊一塊,然后每個(gè)部分進(jìn)行研究。
當(dāng)東方人看到一個(gè)復(fù)雜系統(tǒng)的時(shí)候,更多地會(huì)關(guān)注系統(tǒng)中存在的關(guān)系,將系統(tǒng)作為一個(gè)有機(jī)的整體進(jìn)行研究,這也是東方和西方在事物看法上存在的差異。
這兩種思維方式都沒有問題,如果結(jié)合起來分析問題,解決問題會(huì)更好。面向?qū)ο笈c面向方面也同樣如此,都能對(duì)應(yīng)到人類認(rèn)識(shí)自然的思維方式上。
面向服務(wù)
面向服務(wù)可以說是最近炒得比較火熱的概念。包括現(xiàn)在提到的SaaS(Software as a service),軟件即服務(wù)。準(zhǔn)確而言,面向服務(wù)不僅僅是軟件行業(yè)的概念,這個(gè)要從社會(huì)的產(chǎn)業(yè)結(jié)構(gòu)說起。
社會(huì)產(chǎn)業(yè)總共分為三個(gè),第一產(chǎn)業(yè)農(nóng)業(yè),第二產(chǎn)業(yè)工業(yè),第三產(chǎn)業(yè)服務(wù)業(yè)。最早社會(huì)的主要產(chǎn)業(yè)是第一產(chǎn)業(yè)農(nóng)業(yè),將近有幾萬(wàn)年的歷史。
十八世紀(jì)下半葉在英國(guó)開始的工業(yè)革命,對(duì)人們的生活產(chǎn)生了根本性的影響,社會(huì)的主要產(chǎn)業(yè)成了第二產(chǎn)業(yè)工業(yè)。
現(xiàn)在仍然屬于工業(yè)時(shí)代,或者有人說的“后工業(yè)時(shí)代”。而在后工業(yè)時(shí)代,社會(huì)的經(jīng)濟(jì)體制必定要向第三產(chǎn)業(yè)服務(wù)業(yè)逐漸轉(zhuǎn)型。面向服務(wù)其實(shí)是社會(huì)經(jīng)濟(jì)體制重心的一種遷移。
還是說回到軟件行業(yè),社會(huì)的主要產(chǎn)業(yè)將轉(zhuǎn)變成服務(wù)業(yè),自然軟件行業(yè)也會(huì)出現(xiàn)對(duì)應(yīng)的變化,那就是這里提到的面向服務(wù)。面向服務(wù)今后會(huì)影響到軟件的交付模式,會(huì)對(duì)整個(gè)軟件行業(yè)的體制產(chǎn)生影響。
而說到架構(gòu)層面,面向服務(wù)是系統(tǒng)發(fā)布功能的一種方式。并且基于這種方式下不同的系統(tǒng)之間能有效地通信、協(xié)作。常見的實(shí)現(xiàn)技術(shù)就是Web Service。
軟件全局觀
軟件架構(gòu)設(shè)計(jì)的三個(gè)維度:面向?qū)ο?、面向方面、面向服?wù)。
最年長(zhǎng)的一個(gè)維度就是面向?qū)ο?,發(fā)展了好幾十年,也是相對(duì)而言比較成熟的一個(gè)維度。它解決的問題是系統(tǒng)內(nèi)部結(jié)構(gòu)的設(shè)計(jì)。
面向方面思想的提出能夠彌補(bǔ)面向?qū)ο蟮娜毕?。面向?qū)ο蟮姆绞讲荒軐?shí)現(xiàn)橫切關(guān)注點(diǎn)的分離,而面向方面正是為了解決這個(gè)問題。面向方面與面向?qū)ο笠粯佣际墙鉀Q系統(tǒng)內(nèi)部結(jié)構(gòu)的設(shè)計(jì)。
面向服務(wù)更多的是涉及到系統(tǒng)的外部,簡(jiǎn)單地說就是發(fā)布功能。它并不關(guān)注系統(tǒng)內(nèi)部結(jié)構(gòu)的實(shí)現(xiàn),所以說面向服務(wù)與面向?qū)ο蠡蛘呙嫦蚍矫娌⒉粵_突。
這三個(gè)維度并不是絕對(duì)孤立的,它們之間會(huì)互相影響、制約,相互發(fā)展的。我們?cè)诜治黾軜?gòu)的時(shí)候需要同時(shí)考慮到這三個(gè)維度的問題,這樣有助于我們?cè)O(shè)計(jì)出更加優(yōu)秀的架構(gòu)。
?
架構(gòu)設(shè)計(jì)有三個(gè)維度,或者說是我們?cè)诳紤]架構(gòu)時(shí)需要思考三個(gè)方向。
這三個(gè)維度分別為面向?qū)ο?、面向方面、面向服?wù)。
這三個(gè)維度可以看作是正交的,但不同維度會(huì)互相印證,互相支撐,整個(gè)架構(gòu)的示意圖如圖所示。
圖:架構(gòu)三維度結(jié)構(gòu)圖
面向?qū)ο?br /> 面向?qū)ο蠹夹g(shù)最初是從面向?qū)ο蟮某绦蛟O(shè)計(jì)開始的,它的出現(xiàn)以上世紀(jì)60年代Simula語(yǔ)言為標(biāo)志,并在Smalltalk語(yǔ)言的完善和標(biāo)準(zhǔn)化過程中得到更多的擴(kuò)展和對(duì)以前思想的重新注解。
上世紀(jì)80年代中后期,面向?qū)ο蟪绦蛟O(shè)計(jì)逐漸成熟,被計(jì)算機(jī)界理解和接受,人們又開始進(jìn)一步考慮面向?qū)ο蟮拈_發(fā)問題。直到現(xiàn)在,面向?qū)ο笠呀?jīng)成為一種非常流行的編程方式,以及軟件設(shè)計(jì)的架構(gòu)。
面向?qū)ο筇岢鲇腥齻€(gè)主要目標(biāo):重用性、靈活性和擴(kuò)展性,強(qiáng)調(diào)對(duì)象的“抽象”、“封裝”、“繼承”和“多態(tài)”。它能讓人們以更加接近于現(xiàn)實(shí)世界的方式來思考程序,這點(diǎn)可以說是面向?qū)ο笞畲蟮倪M(jìn)步。
在OO思想的運(yùn)用上,業(yè)界出現(xiàn)了很多好的經(jīng)驗(yàn)與技巧,從而涌現(xiàn)出大量的設(shè)計(jì)模式,可以說面向?qū)ο笫窍到y(tǒng)分析與設(shè)計(jì)時(shí)的一個(gè)很重要的方面。
面向方面
面向方面最初來源于hook技術(shù),本質(zhì)上就是滿足擴(kuò)展的需求,可以在程序中自由擴(kuò)展功能。
面向方面不僅僅是一門編程技術(shù),同樣也是一種架構(gòu)設(shè)計(jì)的思路。如果說OO是縱向地分析、切割整個(gè)系統(tǒng),那么可以認(rèn)為AOP是橫向地對(duì)系統(tǒng)作切片。
簡(jiǎn)單地理解,OO與AOP分別從兩個(gè)不同的角度給我們提供了分析系統(tǒng)的思路。面向方面可以彌補(bǔ)面向?qū)ο蟮娜毕?,兩種方式有機(jī)的結(jié)合在一起,可以更加有效地對(duì)系統(tǒng)進(jìn)行分析。
我們認(rèn)為OO是接近于人類認(rèn)識(shí)自然的思維方式,但對(duì)于東方而言卻并不一定是這樣的。
當(dāng)西方人看到一個(gè)復(fù)雜系統(tǒng)的時(shí)候,只會(huì)有一種思路,就是“分解”,將系統(tǒng)分解成一塊一塊,然后每個(gè)部分進(jìn)行研究。
當(dāng)東方人看到一個(gè)復(fù)雜系統(tǒng)的時(shí)候,更多地會(huì)關(guān)注系統(tǒng)中存在的關(guān)系,將系統(tǒng)作為一個(gè)有機(jī)的整體進(jìn)行研究,這也是東方和西方在事物看法上存在的差異。
這兩種思維方式都沒有問題,如果結(jié)合起來分析問題,解決問題會(huì)更好。面向?qū)ο笈c面向方面也同樣如此,都能對(duì)應(yīng)到人類認(rèn)識(shí)自然的思維方式上。
面向服務(wù)
面向服務(wù)可以說是最近炒得比較火熱的概念。包括現(xiàn)在提到的SaaS(Software as a service),軟件即服務(wù)。準(zhǔn)確而言,面向服務(wù)不僅僅是軟件行業(yè)的概念,這個(gè)要從社會(huì)的產(chǎn)業(yè)結(jié)構(gòu)說起。
社會(huì)產(chǎn)業(yè)總共分為三個(gè),第一產(chǎn)業(yè)農(nóng)業(yè),第二產(chǎn)業(yè)工業(yè),第三產(chǎn)業(yè)服務(wù)業(yè)。最早社會(huì)的主要產(chǎn)業(yè)是第一產(chǎn)業(yè)農(nóng)業(yè),將近有幾萬(wàn)年的歷史。
十八世紀(jì)下半葉在英國(guó)開始的工業(yè)革命,對(duì)人們的生活產(chǎn)生了根本性的影響,社會(huì)的主要產(chǎn)業(yè)成了第二產(chǎn)業(yè)工業(yè)。
現(xiàn)在仍然屬于工業(yè)時(shí)代,或者有人說的“后工業(yè)時(shí)代”。而在后工業(yè)時(shí)代,社會(huì)的經(jīng)濟(jì)體制必定要向第三產(chǎn)業(yè)服務(wù)業(yè)逐漸轉(zhuǎn)型。面向服務(wù)其實(shí)是社會(huì)經(jīng)濟(jì)體制重心的一種遷移。
還是說回到軟件行業(yè),社會(huì)的主要產(chǎn)業(yè)將轉(zhuǎn)變成服務(wù)業(yè),自然軟件行業(yè)也會(huì)出現(xiàn)對(duì)應(yīng)的變化,那就是這里提到的面向服務(wù)。面向服務(wù)今后會(huì)影響到軟件的交付模式,會(huì)對(duì)整個(gè)軟件行業(yè)的體制產(chǎn)生影響。
而說到架構(gòu)層面,面向服務(wù)是系統(tǒng)發(fā)布功能的一種方式。并且基于這種方式下不同的系統(tǒng)之間能有效地通信、協(xié)作。常見的實(shí)現(xiàn)技術(shù)就是Web Service。
軟件全局觀
軟件架構(gòu)設(shè)計(jì)的三個(gè)維度:面向?qū)ο?、面向方面、面向服?wù)。
最年長(zhǎng)的一個(gè)維度就是面向?qū)ο?,發(fā)展了好幾十年,也是相對(duì)而言比較成熟的一個(gè)維度。它解決的問題是系統(tǒng)內(nèi)部結(jié)構(gòu)的設(shè)計(jì)。
面向方面思想的提出能夠彌補(bǔ)面向?qū)ο蟮娜毕?。面向?qū)ο蟮姆绞讲荒軐?shí)現(xiàn)橫切關(guān)注點(diǎn)的分離,而面向方面正是為了解決這個(gè)問題。面向方面與面向?qū)ο笠粯佣际墙鉀Q系統(tǒng)內(nèi)部結(jié)構(gòu)的設(shè)計(jì)。
面向服務(wù)更多的是涉及到系統(tǒng)的外部,簡(jiǎn)單地說就是發(fā)布功能。它并不關(guān)注系統(tǒng)內(nèi)部結(jié)構(gòu)的實(shí)現(xiàn),所以說面向服務(wù)與面向?qū)ο蠡蛘呙嫦蚍矫娌⒉粵_突。
這三個(gè)維度并不是絕對(duì)孤立的,它們之間會(huì)互相影響、制約,相互發(fā)展的。我們?cè)诜治黾軜?gòu)的時(shí)候需要同時(shí)考慮到這三個(gè)維度的問題,這樣有助于我們?cè)O(shè)計(jì)出更加優(yōu)秀的架構(gòu)。
?
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- STM32軟件架構(gòu)設(shè)計(jì)
- 嵌入式系統(tǒng)軟件架構(gòu)設(shè)計(jì)
- 嵌入式軟件架構(gòu)設(shè)計(jì)
- 嵌入式軟件架構(gòu)設(shè)計(jì)
- 基于無線寬帶的林業(yè)監(jiān)控網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)方案 12次下載
- 復(fù)雜裝備的PHM數(shù)據(jù)體系架構(gòu)設(shè)計(jì)方案 7次下載
- 深度:嵌入式系統(tǒng)的軟件架構(gòu)設(shè)計(jì)!資料下載
- 藍(lán)牙Beacon的三個(gè)關(guān)鍵虛擬標(biāo)準(zhǔn)資料下載
- 三個(gè)被動(dòng)元件的基礎(chǔ)知識(shí)及應(yīng)用 19次下載
- 如何使用Autosar的進(jìn)行整車電子電氣架構(gòu)設(shè)計(jì)詳細(xì)方法概述 43次下載
- 關(guān)于MES與ERP的三個(gè)問題 5次下載
- BJT的三個(gè)工作區(qū)及圖解分析法的解析 34次下載
- 使用Simulink實(shí)現(xiàn)軟件架構(gòu)設(shè)計(jì) 37次下載
- CFD軟件開發(fā)的三個(gè)階段 11次下載
- 嵌入式軟件架構(gòu)設(shè)計(jì) 19次下載
- 交換芯片架構(gòu)設(shè)計(jì) 586次閱讀
- 交換芯片架構(gòu)設(shè)計(jì) 772次閱讀
- Linux內(nèi)核內(nèi)存管理架構(gòu)解析 686次閱讀
- SWE.2軟件架構(gòu)設(shè)計(jì) 959次閱讀
- bom架構(gòu)是什么意思 探討B(tài)OM架構(gòu)三個(gè)重要的問題 3112次閱讀
- 架構(gòu)設(shè)計(jì)的主要內(nèi)容是什么 1986次閱讀
- 架構(gòu)與微架構(gòu)設(shè)計(jì) 1229次閱讀
- Qt中的三個(gè)exec之間有什么聯(lián)系 2508次閱讀
- 如何寫一個(gè)架構(gòu)設(shè)計(jì) 1008次閱讀
- 常見的軟件架構(gòu)分層 9708次閱讀
- 嵌入式系統(tǒng)的軟件架構(gòu)設(shè)計(jì) 4205次閱讀
- 幾種軟件架構(gòu)設(shè)計(jì)的思維方式 4951次閱讀
- 干貨:20個(gè)MySQL開源數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì)原則 3410次閱讀
- 門羅隱匿交易的三個(gè)基礎(chǔ)技術(shù)解析 1722次閱讀
- PDF解析程序架構(gòu)設(shè)計(jì)詳細(xì) 6108次閱讀
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 6基于FPGA的C8051F單片機(jī)開發(fā)板設(shè)計(jì)
- 0.70 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21548次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183278次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多