Flyingis

          Talking and thinking freely !
          Flying in the world of GIS !
          隨筆 - 156, 文章 - 16, 評論 - 589, 引用 - 0
          數據加載中……

          MVC的一幅簡單素描

          ?作者:Flyingis

          ?

          素描工具: Struts + Hibernate 3

          素描對象:一個足夠簡單的基于 MVC Web 應用

          目的:使用 Struts 分離業務邏輯與表現,使用 Hibernate 分離數據操作與業務邏輯,整理一種基本的 MVC 開發思路。

          ?

          1. 素描框架
          ?

          ??? 該素描主要體現在系統層次的功能劃分,系統結構的組織與設計上,素描足夠簡單,數據庫中只涉及一張表:

          ??? 學生信息(學生編號、姓名、性別、年齡、專業信息)--Student( id, name, gender, age, specialty_id )

          • 系統設計

          ??? 公共類的設計與實現

          ??? 各模塊的詳細設計,主要描述一個基本的 CRUD 操作,以及對象數據傳遞

          • 系統的部署、測試與發布

          2. 公共類設計
          ?

          ??? 基本的 CRUD 操作封裝在基本的幫助類 HibernateHelper 中,實現 Object load(Class theClass, java.io.Serializable id) Query createQuery(String queryString) 、 void setQueryParameter(Query query, String name, Object val) 、 List list(Query query) 、 void save(Object o) 、 void update(Object o) void delete(Object o) 、 void saveOrUpdate(Object o) 等這些基本方法。
          ?

          ??? 常量單獨封裝在 Constants 類中。

          ?

          3. 各種對象設計

          • ActionForm:StudentForm-- 用于視圖層與控制層之間傳遞數據。
          • 接口 StudentIf-- 實現了學生數據對象 Bean 所需要的所有接口方法。
          • 學生數據對象 StudentData-- 實現了記錄學生對象數據的功能,并可以用作數據交互的傳輸對象,它實現了接口 Serializable StudentIf
          • 學生實體 Bean StudentBean-- 實現了學生實體的所有屬性,它實現了接口 Serializable StudentIf

          4. 對象管理實現類
          ?

          ??? 業務邏輯處理為項目的核心,直接關系到項目是否符合用戶需求。因此,我們可以單獨設計一個對象管理實現類 ManagerFacade,定義處理業務對象的CRUD操作,以增加學生信息為例public StudentIf addStudent(StudentIf student)。學生數據對象StudentDataAction中通過StudentForm接收到表現層傳入的數據,然后作為ManagerFacade對象的addStudent方法的參數傳入方法內,在方法體內聲明學生實體StudentBean的一個對象,將學生數據對象即傳入參數中的屬性值賦給實體對象,然后調用公共類HibernateHelper的save方法完成數據庫操作。其他基本操作與此類似,這樣設計似乎對象較多,但各層之間分工明確,有利于降藕。

          ??? 另外,在數據傳遞過程中,還會涉及到數據類型的轉換,可以專門設計幫助類來完成。

          ?

          5. 頁面 UI 設計
          ?

          ??? 除了設計美觀的頁面外,最重要的是頁面結構要符合項目需要,并提供一定的使用體驗,有時候簡單實用就是最好。如果可以對用戶瀏覽器統一規范要求,或是基本不會屏蔽 Javascript ,數據格式的控制可以放在客戶端用 Javascript 實現。

          ?

          6. 系統的部署、測試與發布。

          posted on 2006-03-27 17:50 Flyingis 閱讀(2627) 評論(6)  編輯  收藏 所屬分類: Web 框架與開發

          評論

          # re: MVC的一幅簡單素描  回復  更多評論   

          基本上看不出mvc
          2006-03-27 18:23 | good

          # re: MVC的一幅簡單素描  回復  更多評論   

          在這個場景中,StudentForm是VO,StudentBean是可以被持久化的實體對象,即PO,StudentData在這里主要起到BO的作用,但不包括業務邏輯,業務邏輯從BO中分離出來,單獨封裝在對象管理的一個類中,這樣便于對象間的解耦和分離,文中描述的是各對象之間相互銜接作用的一種簡單的方式,看了很多高手的大作和討論,理論性特別強,因此通過一個簡單的實例描述了一種傳輸方式。
          以前對這些概念比較模糊,現在也在學習中,請多指教。
          2006-03-27 21:34 | Flyingis

          # re: MVC的一幅簡單素描  回復  更多評論   

          以前在NEC系統集成工作的時候,開發web程序用的是小日本的自己框架,小日本很狂妄的說,這個框架你們很難理解的,后來一看,標準的mvc模式

          過了一年,用了structs,發現小日本框架就是個簡化版的structs

          MVC模式經久不衰


          歡迎訪問:http://www.shuangzixing.net
          2006-03-28 20:40 | fanse

          # re: MVC的一幅簡單素描  回復  更多評論   

          bgchd e ghdtrhg aa
          2006-04-19 12:02 | zhangxiuxiu

          # re: MVC的一幅簡單素描  回復  更多評論   

          @Flyingis
          請教:
          Struts , Hibernate在.net環境,VC++環境的對應框架有哪些?
          2007-05-24 08:51 | flyingfish

          # re: MVC的一幅簡單素描  回復  更多評論   

          @flyingfish
          VC++很少應用于Web應用開發,.Net框架中的主流web開發語言是vb.net和c#。
          由于Java開源的本質,其MVC框架往往有多種選擇,但.net框架中就只有asp.net可以選擇,簡單易用,最明顯的不足是不能跨平臺部署。
          Hibernate在.net中有Nhibernate可以選擇,后者生于前者。
          2007-05-24 22:40 | Flyingis
          主站蜘蛛池模板: 新乐市| 治多县| 南皮县| 信丰县| 太仆寺旗| 隆林| 凤台县| 南川市| 昌平区| 北票市| 安义县| 东方市| 米脂县| 滦平县| 大连市| 中阳县| 闽侯县| 隆林| 剑河县| 隆回县| 通许县| 苍南县| 宣城市| 福海县| 新野县| 乌拉特后旗| 小金县| 延寿县| 普定县| 杨浦区| 乡城县| 长阳| 醴陵市| 敦煌市| 宁国市| 浏阳市| 长寿区| 铜川市| 娱乐| 盘山县| 巨鹿县|