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

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

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

    Shao Fan

    關于JAVA與軟件工程
    posts - 31, comments - 71, trackbacks - 0, articles - 4
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    2007年9月8日

    目前開發人員對系統開發的一個共識是使用三層架構,分為表示層,業務層,和持久層。而這三層之間的依賴關系如何?比較常見的一種看法是

    表示層 --> 業務層 --> 持久層

    這表明了層與層之間的調用關系,表示層通過調用業務層來完成任務,而業務層則調用持久層。從另一個角度來看,一種依賴關系是

    表示層 --> 領域模型(Domain Model) <-- 持久層

    表示層和持久層都應該理解(recognize)領域模型。而領域模型則是業務層的一部分。業務層正是系統的價值所在。雖說表示和持久也很重要,在某些系統中可以說是很關鍵,但是它們的最終目的都是為業務服務,所以業務層應該是系統的核心

    基于以上的認識,在系統設計的時應首先分析需求得到領域模型,找出系統中的實體、對象(靜態的一面),并明確大致的業務流程(動態的一面)。 而另兩層應盡最大努力為業務層服務,且盡量減少業務層受另兩層的限制。


    各層的職責:

    表示層:負責顯示信息,及從系統外部得到輸入。表示層的設計決定系統界面的可用性,及信息輸入和展示的可靠性。表示層只知道如何展示信息,及收集用戶輸入,并不知道該如何對這些輸入進行處理來完成業務。

    業務層:完成業務邏輯。業務層設計決定客戶價值是否能夠得到實現。這是系統的關鍵。外在的表現是功能性。業務層設計和實現的失誤表現在用戶端即功能缺失,功能不可靠等。如果需要對業務層的業務規則進行解耦,則可以使用規則引擎如Drools,把業務規則分離出來。但分離后的業務規則仍屬于業務層。業務層知道如何對用戶輸入進行處理,能夠應用業務規則完成用戶所需的業務,但它不知道數據如何讀取和保存。

    持久層:負責用戶信息的持久化。持久層的失誤表現在外即數據處理(儲存,展示等)不可靠。持久層完全不知道業務,只專注于數據存儲和讀取。所謂持久化并不一定是指數據庫,任何方式的持久化(通過文件,網絡的持久化等)都應由持久層完成。

    各層的設計都會直接影響系統性能。

    三層的體積大小和復雜度在不同的系統中可能會有很大的不同。比如說GOOGLE的搜索引擎,它的界面很簡單,可以想像表示層是比較容易實現的,而它的業務層,關系到處理關鍵字,分析搜索結果,決定排名等,而持久層則要負責處理超大量的數據。業務層和持久層則相當復雜。而有的系統持久層會很小,比如殺毒軟件,媒體播放軟件等。業務層小而另兩層大的例子暫時還沒有想到:)


    posted @ 2007-09-08 19:45 shaofan 閱讀(5130) | 評論 (2)編輯 收藏

    主站蜘蛛池模板: 免费很黄很色裸乳在线观看| 成人免费一区二区三区在线观看| 在线免费观看国产视频| 亚洲乱码在线卡一卡二卡新区| 亚洲w码欧洲s码免费| 91亚洲性爱在线视频| 人禽杂交18禁网站免费| 狠狠色伊人亚洲综合网站色| 成年在线观看免费人视频草莓| 亚洲精品色播一区二区| 免费国产在线观看不卡| 特黄特色的大片观看免费视频| 亚洲色偷偷综合亚洲AV伊人| 伊人久久国产免费观看视频| 国产亚洲情侣一区二区无码AV| 视频免费在线观看| 久久精品国产亚洲av高清漫画| av无码国产在线看免费网站| 亚洲国产日韩a在线播放| 国产免费av片在线无码免费看| 日韩在线一区二区三区免费视频| 亚洲精品综合久久| 国产一精品一av一免费爽爽| 亚洲日韩国产精品无码av| 成人毛片18女人毛片免费| 男人j进女人p免费视频| 在线a亚洲v天堂网2019无码| 97av免费视频| 亚洲AV无码一区二区一二区| 久久影院亚洲一区| 久久久久久精品成人免费图片| 亚洲精品无码久久久久久| 亚洲日韩在线第一页| 69视频在线是免费观看| 亚洲欧美aⅴ在线资源| 久久精品亚洲男人的天堂| 久久免费的精品国产V∧| 精品亚洲国产成人av| 亚洲AV无码不卡在线播放| 成全视频免费高清| 成在线人免费无码高潮喷水|