MVC的一幅簡單素描
?
素描工具: 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)。學生數據對象StudentData在Action中通過StudentForm接收到表現層傳入的數據,然后作為ManagerFacade對象的addStudent方法的參數傳入方法內,在方法體內聲明學生實體StudentBean的一個對象,將學生數據對象即傳入參數中的屬性值賦給實體對象,然后調用公共類HibernateHelper的save方法完成數據庫操作。其他基本操作與此類似,這樣設計似乎對象較多,但各層之間分工明確,有利于降藕。
??? 另外,在數據傳遞過程中,還會涉及到數據類型的轉換,可以專門設計幫助類來完成。
?
5.
頁面
UI
設計
?
??? 除了設計美觀的頁面外,最重要的是頁面結構要符合項目需要,并提供一定的使用體驗,有時候簡單實用就是最好。如果可以對用戶瀏覽器統一規范要求,或是基本不會屏蔽 Javascript ,數據格式的控制可以放在客戶端用 Javascript 實現。
?
6. 系統的部署、測試與發布。
posted on 2006-03-27 17:50 Flyingis 閱讀(2628) 評論(6) 編輯 收藏 所屬分類: Web 框架與開發