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