国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
OO系統(tǒng)設(shè)計(jì)師之路--設(shè)計(jì)模型系列(1)--軟件架構(gòu)和軟件框架
2009-05-13 作者:coffeewoo 來源:coffeewoo的blog
軟件架構(gòu)是一種思想,一個(gè)系統(tǒng)藍(lán)圖,對(duì)軟件結(jié)構(gòu)組成的規(guī)劃和職責(zé)設(shè)定。而軟件框架是一個(gè)實(shí)現(xiàn),一個(gè)半成品,是針對(duì)一個(gè)特定問題的解決方案和輔助工具。
這一篇講軟件架構(gòu)和軟件框架在UML設(shè)計(jì)過程中所起的作用。本系列文章不是專門討論軟件架構(gòu)和軟件框架的,所以不會(huì)深入講怎么做軟件架構(gòu)和軟件框架。另一個(gè)原因是筆者尚無這個(gè)自信能夠在這里班門弄斧講軟件架構(gòu)。之所以要講,是因?yàn)樵谠O(shè)計(jì)過程中,設(shè)計(jì)類必然會(huì)受到軟件架構(gòu)和框架的約束。從分析類到設(shè)計(jì)類,軟件架構(gòu)和框架是不得不考慮的一個(gè)重要因素。
軟件架構(gòu)和軟件框架是一回事兒?jiǎn)??相信有相?dāng)一部分人搞不清楚這個(gè)問題,也會(huì)有相當(dāng)一部分人認(rèn)為是一回事兒,只是不同的叫法而已。架構(gòu)的英文原文是Architecture,而框架呢,則是Framwork。顯然這是兩個(gè)完全不同的詞兒。從技術(shù)上講,IT有一個(gè)職業(yè)是架構(gòu)師,架構(gòu)師代表了軟件技術(shù)人員最高的職業(yè)頂峰,卻從沒有聽說過有軟件框架師的。所以肯定的說,軟件架構(gòu)和軟件框架是兩回事兒。
那么什么是軟件架構(gòu),什么又是軟件框架呢?軟件架構(gòu)是一種思想,一個(gè)系統(tǒng)藍(lán)圖,對(duì)軟件結(jié)構(gòu)組成的規(guī)劃和職責(zé)設(shè)定。而軟件框架是一個(gè)實(shí)現(xiàn),一個(gè)半成品,是針對(duì)一個(gè)特定問題的解決方案和輔助工具。因此,架構(gòu)是一個(gè)邏輯的構(gòu)成,而框架是一個(gè)可用的半成品。比如說,J2EE規(guī)范描述了一系列邏輯部件,描述了這些部件的職責(zé)和它們的規(guī)范,約定了這些部件之間交互的接口和協(xié)議、標(biāo)準(zhǔn),規(guī)劃出一個(gè)如何利用這些邏輯部件來實(shí)現(xiàn)一個(gè)應(yīng)用系統(tǒng)的藍(lán)圖。J2EE是一個(gè)軟件架構(gòu)。而根據(jù)這一設(shè)想,各產(chǎn)商開發(fā)出了各自的產(chǎn)品,包括開發(fā)工具和應(yīng)用容器,開發(fā)者利用這些工具和容器就能方便的開發(fā)出符合J2EE規(guī)范的應(yīng)用程序。這些工具和容器就是軟件框架。再比如,MVC是一個(gè)設(shè)計(jì)模式,它將應(yīng)用程序劃分為實(shí)體,控制和視圖三個(gè)邏輯部件,我們可以說它是一個(gè)軟件架構(gòu)。而Strus,JSF,WEBWork等分別以自己的方式實(shí)現(xiàn)了這一架構(gòu),提供了一個(gè)半成品,幫助開發(fā)人員迅速地開發(fā)一個(gè)符合MVC架構(gòu)的應(yīng)用程序,我們說Strus,JSF,WEBWork是軟件框架。
在一個(gè)商業(yè)軟件的開發(fā)過程中,如何去設(shè)定軟件的架構(gòu)和框架,在設(shè)計(jì)過程中,軟件架構(gòu)和框架又是如何影響設(shè)計(jì)的呢?
軟件架構(gòu)在一個(gè)商業(yè)系統(tǒng)的開發(fā)過程中,是由軟件架構(gòu)師這一角色來完成的。架構(gòu)師要從很高的角度,根據(jù)應(yīng)用環(huán)境,用戶需求,公司技術(shù)發(fā)展要求等等來對(duì)這一個(gè)系統(tǒng)作出邏輯的劃分。例如是集中式還是分布式?采用什么中間件?采用何種技術(shù)體系?應(yīng)用什么標(biāo)準(zhǔn)?符合什么規(guī)范?軟件的層次是什么?傳輸協(xié)議是什么?與公司其它產(chǎn)品如何銜接?如何使公司產(chǎn)生核心競(jìng)爭(zhēng)力?可見一個(gè)架構(gòu)師對(duì)一個(gè)公司的重要性。
可惜架構(gòu)師這一角色在很大程度上被誤解,架構(gòu)師這一稱謂也被濫用。知道幾個(gè)設(shè)計(jì)模式,用過幾個(gè)框架,有過幾個(gè)中間件或應(yīng)用服務(wù)器的經(jīng)歷,就號(hào)稱是架構(gòu)師了。也難怪有人說架構(gòu)師己死。掌握以上技能的,在我看來,只是經(jīng)驗(yàn)豐富的設(shè)計(jì)師而已。因?yàn)樗茏龅?,只是?yīng)用現(xiàn)成的技術(shù)。架構(gòu)師要做的,是發(fā)明J2EE規(guī)范,是創(chuàng)造SOA架構(gòu),是構(gòu)架出領(lǐng)先于市場(chǎng)的技術(shù)產(chǎn)品,是領(lǐng)導(dǎo)軟件技術(shù)潮流,是引導(dǎo)軟件技術(shù)發(fā)展趨勢(shì)。這種差別,就如同科學(xué)家和工程師的差別。
因此,在一般的中小企業(yè)里,如果沒有領(lǐng)先于業(yè)界的產(chǎn)品,沒有引導(dǎo)了市場(chǎng)的思想,沒有稱霸一方的應(yīng)用領(lǐng)域,就不需要架構(gòu)師這個(gè)角色,也產(chǎn)生不了架構(gòu)師。有幾個(gè)高級(jí)設(shè)計(jì)師,能緊緊跟住技術(shù)潮流,把先進(jìn)技術(shù)玩兒轉(zhuǎn)并應(yīng)用到自己的產(chǎn)品里,也就足夠了。也因此,在一般的商業(yè)系統(tǒng)開發(fā)過程中,軟件架構(gòu)這一個(gè)領(lǐng)域,最主要的工作是選擇適合自己的現(xiàn)成的軟件架構(gòu)。換句話說是用好現(xiàn)有的技術(shù)。比如,決定采用J2EE架構(gòu)。再能做的一點(diǎn),是劃分軟件邏輯層次,決定使用的標(biāo)準(zhǔn)和規(guī)范。
作為例子,一個(gè)軟件架構(gòu)和商業(yè)系統(tǒng)開發(fā)過程中可以用這樣的形式來表述:
一個(gè)軟件架構(gòu)的表述例子:
有的讀者可能會(huì)說,沒什么難的嘛,我也懂,我們的項(xiàng)目也是這樣做的。呵呵,是的,在很多人心目的,架構(gòu)師做的可能就是這樣的工作??墒亲屑?xì)想想,雖然懂得這么多已經(jīng)不容易了,可這樣的人并不少見,那不就是滿天都是架構(gòu)師了么?雖然這個(gè)工作的確是在做軟件架構(gòu),可是我認(rèn)為并不能稱為架構(gòu)師,頂多是高級(jí)設(shè)計(jì)師,懂得如何應(yīng)用現(xiàn)有技術(shù)而已。
好了,軟件架構(gòu)已經(jīng)定下來了,現(xiàn)在該由設(shè)計(jì)師(實(shí)際上,絕大多數(shù)公司里的架構(gòu)工作也是由設(shè)計(jì)師來做的)來決定每一個(gè)層次的具體框架設(shè)計(jì)了。下面的例子,是以Entity層作為例子來表述框架的。
Entity層框架的例子:
這個(gè)例子只給出了靜態(tài)圖。為了讓開發(fā)人沒明白這個(gè)設(shè)計(jì),還應(yīng)當(dāng)給出交互圖。例如,如果應(yīng)用程序增加一個(gè)VO,Business層怎么調(diào)用EntityControl,EntityControl如何分解VO,怎么訪問Relationship,怎么處理PO,怎么訪問DBControl層。也就是這些框架基類如何交互來完成業(yè)務(wù)要求。這個(gè)圖筆者就不再繪制了。建議有興趣的讀者設(shè)計(jì)自己的框架,并自己繪制這些交互圖。自己動(dòng)手認(rèn)識(shí)會(huì)更深。
架構(gòu)有了,框架也有了,對(duì)于設(shè)計(jì)類來說,架構(gòu)和框架形成了規(guī)范,設(shè)計(jì)類必須遵守這些規(guī)范,并了解如何使用框架的接口。當(dāng)然,這個(gè)架構(gòu)和框架僅僅是一個(gè)例子,現(xiàn)實(shí)中的架構(gòu)和框架可不僅僅這一點(diǎn),考慮的東西會(huì)更多,比如日志如何處理,事務(wù)如何處理,異常如何處理。每一個(gè)可能又都是一個(gè)框架。另外,如果選擇了某一個(gè)成熟產(chǎn)商的架構(gòu),例如Websphere,Weblogic,可能就不需要自己來設(shè)計(jì)架構(gòu)和框架了,這些產(chǎn)品已經(jīng)提供了。
這一篇就到這里。下一篇本來是應(yīng)當(dāng)講如何從分析類到設(shè)計(jì)類的,不過覺得好象沒什么可講,因?yàn)榭蚣芗热灰?guī)定了,并且正常的業(yè)務(wù)邏輯都已經(jīng)由框架處理了,分析類轉(zhuǎn)化成設(shè)計(jì)類應(yīng)當(dāng)是一件水到渠成的事情。筆者還在考慮下一篇該寫些什么,就暫不預(yù)告了。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
4 1視圖方法的3大特點(diǎn)——4 1視圖剖析系列
《軟件架構(gòu)設(shè)計(jì)》讀書筆記
什么是系統(tǒng)架構(gòu)?
什么是架構(gòu)師和如何成為一個(gè)架構(gòu)師
可以落地的軟件架構(gòu)
做了這么多年架構(gòu)師,我終于理解了什么是架構(gòu)設(shè)計(jì)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服