讀古今文學網 > Maven實戰 > 4.3.2 模塊結構 >

4.3.2 模塊結構

定義了系統核心的接口之後,基於功能分割和方便復用的原則,再對系統進一步進行劃分。這裡基於包名劃分模塊,這也是在Java中比較常見的做法。

也許你會覺得為如此簡單的一個系統(或許根本就不該稱之為系統)劃分模塊有點小題大做了,有經驗的程序員根本不需要多少設計就能快速完成這樣的一個註冊功能。不過本書的目的不在這個功能本身,我們需要一個像模像樣的、有很多模塊的系統來演示Maven很多非常酷的特性,同時,又不想引入一個擁有成千上萬行代碼的過於龐大的系統。賬戶註冊服務的模塊劃分如圖4-4所示。

圖4-4 註冊賬戶服務包圖

現在逐個解釋一下各個模塊(包)的作用:

·com.juvenxu.mvnbook.account.service:系統的核心,它封裝了所有下層細節,對外暴露簡單的接口。這實際上是一個Facade模式,瞭解設計模式的讀者應該能馬上理解。

·com.juvenxu.mvnbook.account.web:顧名思義,該模塊包含所有與web相關的內容,包括可能的JSP、Servlet、web.xml等,它直接依賴於com.juvenxu.mvnbook.account.service模塊,使用其提供的服務。

·com.juvenxu.mvnbook.account.persist:處理賬戶信息的持久化,包括增、刪、改、查等,根據實現,可以基於數據庫或者文件。

·com.juvenxu.mvnbook.account.captcha:處理驗證碼的key生成、圖片生成以及驗證等,這裡需要第三方的類庫來幫助實現這些功能。

·com.juvenxu.mvnbook.account.email:處理郵件服務的配置、激活郵件的編寫和發送等工作。