action+form = model
actionservlet+struts-config.xml= controller
jsp+自定義標籤=veiw
備註:這裏說明的非常好
model與veiw可以分離編寫(事實上沒見過這麼開發的)
之後用xml把這兩邊織在一起....
本文爲開源供應鏈系統代碼說明第一部分,主要說明系統架構。
一、系統框架
系統採用Struts框架,並對MVC結構作了更進一步的擴充,基本結構如下:
Entity是在各層間傳遞數據,應用範圍最爲廣泛;
Form層繼承自ActionBaseForm,主要在頁面文件(JSP)和Action層之間傳遞數據;
Action層各對象均繼承自DispatchAction;
Logic 層主要完成包括用戶權限在內的業務邏輯處理功能;
Biz層(Business的接口)主要完成數據邏輯功能,例如關聯表的檢查和處理;
DAO層分DAO接口層和DAO實現層。
Biz層只能調用DAO接口層,實現系統與數據庫的相對獨立性;
DAO實現層最終完成與物理數據庫的操作,它對Biz層是不可見。
備註:
這兩句話對我也非常有啓發性,對解決dao和service功能劃分有很好的指導作用。
三、類命名規範
1. Entity層:
繼承關係:所有類繼承自BasicEntity, 其中BasicEntity實現 java.io.Serializable接口;
命名規則:類名稱 = Object + 類後綴,其中類後綴爲 Bean,如:SalesOrderBean
備註:我對比了幾個項目基本是這樣做的。
2. Form層:
繼承關係:所有類繼承自BasicForm, 由於本項目基於Struts結構,因此BaseForm繼承自ValidatorForm;
命名規則:類名稱 = Object + 類後綴,其中類後綴爲 Form,如:SalesOrderForm
3. Action層:
繼承關係:所有類均繼承自BasicAction, 其中BasicAction實現Action層異常的統一處理;
由於本項目基於Struts結構,因此BaseAction繼承自DispatchAction;
命名規則:類名稱 = Object + 類後綴,其中類後綴爲 Action,如:SalesOrderAction
4. Logic層:
繼承關係:所有類繼承自BasicLogicObject,其中BasicLogicObject實現Logic層異常的統一處理和權限檢查,至於爲什麼要在這層進行權限的檢查,主要考慮到未來提供SOA服務時升級的需要;
命名規則:類名稱 = Object + 類後綴,其中類後綴爲 Logic,如:SalesOrderLogic
5. Biz層 :
繼承關係:所有類繼承自BasicBizObject,其中BasicBizObject實現Biz層異常的統一處理;
命名規則:類名稱 = Object + 類後綴,其中類後綴爲 Biz,如:SalesOrderBiz
備註:我們項目中一般叫XXXService,但這裏多了一個Logic層,可以意義就不一樣了。
6. DAO接口層:
命名規則:類名稱 = 類前綴 + Object + 類後綴,其中類前綴爲I,後綴爲 Dao,如:ISalesOrderDao
7. DAO實現層 :
繼承關係:所有類繼承自BasicDaoObject,其中BasicDaoObject實現Dao實現層異常的統一處理;;
命名規則:類名稱 = Object + 類後綴,其中類後綴爲 Impl,如:SalesOrderImpl
備註:我項目中是這樣做的