MVC的一幅簡單素描
?
素描工具: Struts + Hibernate 3
素描對象:一個足夠簡單的基于 MVC 的 Web 應(yīng)用
目的:使用 Struts 分離業(yè)務(wù)邏輯與表現(xiàn),使用 Hibernate 分離數(shù)據(jù)操作與業(yè)務(wù)邏輯,整理一種基本的 MVC 開發(fā)思路。
?
1.
素描框架
?
??? 該素描主要體現(xiàn)在系統(tǒng)層次的功能劃分,系統(tǒng)結(jié)構(gòu)的組織與設(shè)計(jì)上,素描足夠簡單,數(shù)據(jù)庫中只涉及一張表:
??? 學(xué)生信息(學(xué)生編號、姓名、性別、年齡、專業(yè)信息)--Student( id, name, gender, age, specialty_id )
-
系統(tǒng)設(shè)計(jì)
??? 公共類的設(shè)計(jì)與實(shí)現(xiàn)
??? 各模塊的詳細(xì)設(shè)計(jì),主要描述一個基本的 CRUD 操作,以及對象數(shù)據(jù)傳遞
-
系統(tǒng)的部署、測試與發(fā)布
2.
公共類設(shè)計(jì)
?
??? 基本的
CRUD
操作封裝在基本的幫助類
HibernateHelper
中,實(shí)現(xiàn)
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)
等這些基本方法。
?
??? 常量單獨(dú)封裝在 Constants 類中。
?
3. 各種對象設(shè)計(jì)
-
ActionForm:StudentForm-- 用于視圖層與控制層之間傳遞數(shù)據(jù)。
-
接口 StudentIf-- 實(shí)現(xiàn)了學(xué)生數(shù)據(jù)對象 Bean 所需要的所有接口方法。
-
學(xué)生數(shù)據(jù)對象 StudentData-- 實(shí)現(xiàn)了記錄學(xué)生對象數(shù)據(jù)的功能,并可以用作數(shù)據(jù)交互的傳輸對象,它實(shí)現(xiàn)了接口 Serializable 和 StudentIf 。
-
學(xué)生實(shí)體 Bean StudentBean-- 實(shí)現(xiàn)了學(xué)生實(shí)體的所有屬性,它實(shí)現(xiàn)了接口 Serializable 和 StudentIf 。
4.
對象管理實(shí)現(xiàn)類
?
??? 業(yè)務(wù)邏輯處理為項(xiàng)目的核心,直接關(guān)系到項(xiàng)目是否符合用戶需求。因此,我們可以單獨(dú)設(shè)計(jì)一個對象管理實(shí)現(xiàn)類
ManagerFacade,定義處理業(yè)務(wù)對象的CRUD操作,以增加學(xué)生信息為例public StudentIf addStudent(StudentIf student)。學(xué)生數(shù)據(jù)對象StudentData在Action中通過StudentForm接收到表現(xiàn)層傳入的數(shù)據(jù),然后作為ManagerFacade對象的addStudent方法的參數(shù)傳入方法內(nèi),在方法體內(nèi)聲明學(xué)生實(shí)體StudentBean的一個對象,將學(xué)生數(shù)據(jù)對象即傳入?yún)?shù)中的屬性值賦給實(shí)體對象,然后調(diào)用公共類HibernateHelper的save方法完成數(shù)據(jù)庫操作。其他基本操作與此類似,這樣設(shè)計(jì)似乎對象較多,但各層之間分工明確,有利于降藕。
??? 另外,在數(shù)據(jù)傳遞過程中,還會涉及到數(shù)據(jù)類型的轉(zhuǎn)換,可以專門設(shè)計(jì)幫助類來完成。
?
5.
頁面
UI
設(shè)計(jì)
?
??? 除了設(shè)計(jì)美觀的頁面外,最重要的是頁面結(jié)構(gòu)要符合項(xiàng)目需要,并提供一定的使用體驗(yàn),有時(shí)候簡單實(shí)用就是最好。如果可以對用戶瀏覽器統(tǒng)一規(guī)范要求,或是基本不會屏蔽 Javascript ,數(shù)據(jù)格式的控制可以放在客戶端用 Javascript 實(shí)現(xiàn)。
?
6. 系統(tǒng)的部署、測試與發(fā)布。
posted on 2006-03-27 17:50 Flyingis 閱讀(2627) 評論(6) 編輯 收藏 所屬分類: Web 框架與開發(fā)