Sung in Blog

                     一些技術文章 & 一些生活雜碎

          模型組件代表應用的業務數據和邏輯.坦率的說Struts框架并沒有為設計和創建模型組件提供線程的框架.不過Strtus允許使用其他的模型組件來處理應用的業務領域.如EJB活JDO以及常規的JavaBean和ORM.

          模型是應用中重要的一部分,它包含了業務實體和業務規則,負責訪問和更新持久化數據.應該把所有的模型組件放在系統中的同一個位置,這樣利于維護數據和完整性,提高可重用性.模型和視圖以及控制器之間保持獨立,在分層框架結構中.位于上層的視圖和控制器依賴于下層的模型的實現,而下層的模型不應該依賴于上層的視圖在控制器的實現.如果在模型組件中通過JAVA的import語句引入了視圖和控制器組件,這樣的程序就垃圾了.

          在科學和工程技術領域,模型是一個很有用途的概念,它可以用來模擬一個真是的系統.在軟件開發領域,模型用來表示真是世界的實體.在軟件開發的不同階段,需要為目標系統創建不同的模型.可以采用面向對象的建模語言UML來描述.

          在建模之前首先要對問題域進行詳細的分析,確定用例,接下來可以根據用例來創建概念模型.概念模型用來模擬問題域中的真實實體.概念模型描述了每個實體的概念和屬性,以及實體之間的關系.這個階段并不描述實體的行為.比如說商品和商品目錄之間存在多對多的關系,這是因為一個商品目錄包含多個商品,而一個商品也可以屬于多個商品目錄.

          設計模型需要在概念模型的基礎上設計.可以用UML類框圖,活動圖以及狀態圖來描述設計模型.根據UML語言,類之間存在四種關系:

          1)     關聯(Association):就是類之間的引用關系,

          2)      依賴(Dependency):是指類之間的訪問關系.

          3)      累積(Aggregation)就是說整體與個體之間的關系,可以把累積看作一種強關聯關系.

          4)      一般化(Generalization):是類之間的繼承關系.

          如果想了解如何為應用創建合理的面向對象的設計模型,可以瀏覽www.uml.org深入了解UML語言.

          業務對象BO(Business Object),是對真是世界的實體的軟件抽象.它可以代表業務領域中的人,地點,事務或者概念.業務對象包括狀態和行為.如果一個類可以作為業務對象它應該具有以下特征:

          1)     包含狀態和行為.

          2)      代表業務領域的人,地點,事務或概念.

          3)      可以重用.

          業務對象客分為三種類型:

          1)     實體業務對象.

          2)      過程業務對象.

          3)      事件業務對象.

          實體對象就是具體的對象,比如人,地點,商品,訂單.過程對象就是業務過程或者流程,

          他們通常依賴于實體對象.可以把業務領域的動詞,比如登陸,發貨等作為過程對象.事件對象代表一些時間如比異常,警告,超時,錯誤.這些事件通常由系統中的行為觸發器激活.在應用使用業務對象好處很多,最重要的一點就是業務對象提供了通用的技術術語和概念,不管技術人員還是非技術人員都可以共享理解它們.此外業務對象可以隱藏實現的細節,對外只暴露接口,提高了安全性.

          通常,持久化意味著通過手工或者其他方法輸入到應用中的數據,能夠在應用結束運行后依然存在.即使應用運行結束或者計算機關閉,這些信息依然存在.當應用中的業務對象在內存中創建后,他們不可能永遠存在.最后,他們要么消失,要么就要被持久化到數據庫中.內存無法永久保留數據,因此必須對業務對象進行持久化.關系型數據庫被廣泛用來存儲數據.關系型數據庫中存放的是關系型數據.它是非面向對象的.把業務對象映射到非面向對象的數據庫中,因為對象由狀態和行為組成,而關系數據庫則由表組成.對象之間的各種關系和關系型數據庫中表之間的關系并不一一對應.例如對象之間繼承關系就不能直接映射到關系型數據庫中了.而對于JAVA應用,可以直接通過JDBC編程來訪問數據庫.JDBC可以說是訪問持久化數據層的最原始最直接的方法,如果數據模型非常復雜,這里我推薦用Hibernate架構來進行持久化層的處理.

          因為Struts中本身不包含處理模型的架構,所以在這里只是簡單的對模型進行了介紹.至于具體的知識可以研究Ejb,JavaBean等技術.至于持久化層的hibernate架構,這里我推薦閱讀孫衛琴的:<<精通Hibernate>>.

          posted on 2005-10-27 17:30 Sung 閱讀(435) 評論(0)  編輯  收藏 所屬分類: Struts
          主站蜘蛛池模板: 特克斯县| 南皮县| 永靖县| 宜黄县| 阿拉善右旗| 蓝田县| 合作市| 武鸣县| 徐闻县| 沛县| 呼伦贝尔市| 恩平市| 镇平县| 顺义区| 新丰县| 尚义县| 林州市| 玛纳斯县| 兴业县| 邯郸县| 邵东县| 阳曲县| 鹿邑县| 黑水县| 昌江| 广饶县| 封开县| 苍溪县| 香格里拉县| 丰都县| 佛教| 娱乐| 华坪县| 金沙县| 仁化县| 来安县| 保靖县| 兴山县| 土默特右旗| 三原县| 永寿县|