<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    冰浪

    哥已不再年輕 - 堅定夢想,畢生追求!
    posts - 85, comments - 90, trackbacks - 0, articles - 3
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    [轉(zhuǎn)]Java軟件架構(gòu)設(shè)計概論

    Posted on 2007-04-12 10:48 冰浪 閱讀(362) 評論(0)  編輯  收藏 所屬分類: WEB開發(fā)
    開始之初的架構(gòu)設(shè)計決定著軟件產(chǎn)品的生死存亡。“好的開始相當于成功一半”。

      開始的架構(gòu)設(shè)計也是最難的,需要調(diào)研同類產(chǎn)品的情況以及技術(shù)特征,了解當前世界上對這種產(chǎn)品所能提供的理論支持和技術(shù)平臺支持。再結(jié)合自己項目的特點(需要透徹的系統(tǒng)分析),才能逐步形成自己項目的架構(gòu)藍圖。

      比如要開發(fā)網(wǎng)站引擎系統(tǒng),就從Yahoo的個人主頁生成工具 到虛擬主機商提供的網(wǎng)站自動生成系統(tǒng),以及IBM Webphere Portal的特點和局限 從而從架構(gòu)設(shè)計角度定立自己產(chǎn)品的位置。

      好的設(shè)計肯定需要經(jīng)過反復修改,從簡單到復雜的循環(huán)測試是保證設(shè)計正確的一個好辦法

      由于在開始選擇了正確的方向,后來項目的實現(xiàn)過程也驗證了這種選擇,但在一些架構(gòu)設(shè)計的細部方面,還需要對方案進行修改,屬于那種螺旋上升的方式,顯然這是通過測試第一的思想和XP工程方法來實現(xiàn)的。

      如果我們開始的架構(gòu)設(shè)計在技術(shù)平臺定位具有一定的世界先進水平,那么,項目開發(fā)實際有一半相當于做實驗,是研發(fā),存在相當?shù)募夹g(shù)風險。

      因此,一開始我們不可能將每個需求都實現(xiàn),而是采取一種簡單完成架構(gòu)流程的辦法,使用最簡單的需求將整個架構(gòu)都簡單的完成一遍(加入人工干預),以檢驗各個技術(shù)環(huán)節(jié)是否能髖浜瞎ぷ?非常優(yōu)秀先進的兩種技術(shù)有時無法在一起工作),同時也可以探知技術(shù)的深淺,掌握項目中的技術(shù)難易點。這個過程完成后,我們就對設(shè)計方案做出上面的重大修改,豐富完善了設(shè)計方案。

      設(shè)計模式是支撐架構(gòu)的重要組件

      架構(gòu)設(shè)計也類似一種工作流,它是動態(tài)的,這點不象建筑設(shè)計那樣,一開始就能完全確定,架構(gòu)設(shè)計伴隨著整個項目的進行過程之中,有兩種具體操作保證架構(gòu)設(shè)計的正確完成,那就是設(shè)計模式(靜態(tài))和工程項目方法(RUP或XP 動態(tài)的)。

      設(shè)計模式是支撐架構(gòu)的一種重要組件,這與建筑有很相象的地方,一個建筑物建立設(shè)計需要建筑架構(gòu)設(shè)計,在具體施工中,有很多建筑方面的規(guī)則和模式。

      我們從J2EE藍圖模式分類http://java.sun.com/blueprints/patterns/catalog.html中就可以很清楚的看到J2EE這樣一個框架軟件的架構(gòu)與設(shè)計模式的關(guān)系。

      架構(gòu)設(shè)計是骨架,設(shè)計模式就是肉

      這樣,一個比較豐富的設(shè)計方案可以交由程序員進一步完成了,載輔助以適當?shù)墓こ谭椒ǎ@樣就可保證項目的架構(gòu)設(shè)計能正確快速的完成。

      時刻牢記架構(gòu)設(shè)計的目標

      由于架構(gòu)設(shè)計是在動態(tài)中完成的,因此在把握架構(gòu)設(shè)計的目標上就很重要,因此在整個項目過程中,甚至每一步我們都必須牢記我們架構(gòu)設(shè)計的總體目標,可以概括下面幾點:

      1. 最大化的重用:這個重用包括組件重用 和設(shè)計模式使用等多個方面。

      比如,我們項目中有用戶注冊和用戶權(quán)限系統(tǒng)驗證,這其實是個通用課題,每個項目只是有其內(nèi)容和一些細微的差別,如果我們之前有這方面成功研發(fā)經(jīng)驗,可以直接重用,如果沒有,那么我們就要進行這個子項目的研發(fā),在研發(fā)過程中,不能僅僅看到這個項目的需求,也要以架構(gòu)的概念去完成這個可以稱為組件的子項目。

      2. 盡可能的簡單明了:我們解決問題的總方向是將復雜問題簡單化,其實這也是中間件或多層體系技術(shù)的根本目標。但是在具體實施設(shè)計過程中,我們可能會將簡單問題復雜化,特別是設(shè)計模式的運用上很容易范這個錯誤,因此如何盡可能的做到設(shè)計的簡單明了是不容易的。

      我認為落實到每個類的具體實現(xiàn)上要真正能體現(xiàn)系統(tǒng)事物的本質(zhì)特征,因為事物的本質(zhì)特征只有一個,你的代碼越接近它,表示你的設(shè)計就是簡單明了,越簡單明了,你的系統(tǒng)就越可靠。更多情況是,一個類并不能反應事物本質(zhì),需要多個類的組合協(xié)調(diào),那么能夠正確使用合適的設(shè)計模式就稱為重中之重。

      我們看一個具備好的架構(gòu)設(shè)計的系統(tǒng)代碼時,基本看到的都是設(shè)計模式,寵物店(pet store)就是這樣的例子?;蛘呖梢赃@樣說,一個好的架構(gòu)設(shè)計基本是由簡單明了的多個設(shè)計模式完成的。

      3. 最靈活的拓展性:架構(gòu)設(shè)計要具備靈活性 拓展性,這樣,用戶可以在你的架構(gòu)上進行二次開發(fā)或更加具體的開發(fā)。

      要具備靈活的拓展性,就要站在理論的高度去進行架構(gòu)設(shè)計,比如現(xiàn)在工作流概念逐步流行,因為我們具體很多實踐項目中都有工作流的影子,工作流中有一個樹形結(jié)構(gòu)權(quán)限設(shè)定的概念就對很多領(lǐng)域比較通用。

      樹形結(jié)構(gòu)是組織信息的基本形式,我們現(xiàn)在看到的網(wǎng)站或者ERP前臺都是以樹形菜單來組織功能的,那么我們在進行架構(gòu)設(shè)計時,就可以將樹形結(jié)構(gòu)和功能分開設(shè)計,他們之間聯(lián)系可以通過樹形結(jié)構(gòu)的節(jié)點link在一起,就象我們可以在圣誕樹的樹枝上掛各種小禮品一樣,這些小禮品就是我們要實現(xiàn)的各種功能。

      有了這個概念,通常比較難實現(xiàn)的用戶級別權(quán)限控制也有了思路,將具體用戶或組也是和樹形結(jié)構(gòu)的節(jié)點link在一起,這樣就間接實現(xiàn)了用戶對相應功能的權(quán)限控制,有了這樣的基本設(shè)計方案的架構(gòu)無疑具備很靈活的拓展性。


    出處:http://blog.csdn.net/softj/
    作者:softj

    主站蜘蛛池模板: 一区二区三区福利视频免费观看| 亚洲AV性色在线观看| 国产精品免费视频观看拍拍| 免费a在线观看播放| 国产亚洲精品免费| 国产又大又黑又粗免费视频| 亚洲精品GV天堂无码男同| 免费观看的a级毛片的网站| 精品国产日韩久久亚洲| 天天摸天天操免费播放小视频 | 中文字幕免费在线播放| 亚洲精品动漫人成3d在线| 深夜福利在线免费观看| 亚洲成a人片在线观看久| 国产免费黄色无码视频 | 亚洲精品字幕在线观看| 国产亚洲精品免费视频播放| 亚洲午夜久久久影院伊人| a级毛片毛片免费观看永久| 精品亚洲永久免费精品| 污污网站免费观看| 亚洲综合激情五月色一区| 国产成人无码免费视频97| 国产免费黄色无码视频| 亚洲人成在线电影| 四虎免费大片aⅴ入口| 另类小说亚洲色图| 亚洲av永久无码精品秋霞电影影院| 外国成人网在线观看免费视频| 亚洲精品123区在线观看| 免费一级一片一毛片| 中文字幕视频在线免费观看| 亚洲高清资源在线观看| 午夜高清免费在线观看| 一级毛片高清免费播放| 亚洲美女人黄网成人女| 免费在线观看污网站| 亚洲午夜免费视频| 99亚洲男女激情在线观看| 亚洲AV永久青草无码精品| 暖暖在线日本免费中文|