Simple Business Layer archetect with Hibernate
Blogger 換新裝了,新UI好看許多。可惜的是文章區太窄了,這樣寫 CODE 不方便呀。
Anyway... 不知是染上了什麼病症,已經一個禮拜都處於頭暈的狀態。只能用 50% 的CPU usage 寫程式。哇咧,寫到後來都不知自己在寫什麼~~~
Anyway (again...) 本週排了一次 code review,consultant 提了一些建議讓我為之一亮。前幾個禮拜研究 Hiberante PO as BO 時略有心得。不過漸漸的發現 PO 是能夠做到 BO 的功能,但是卻沒有辦法進一步 coporate 其他的 BO。也就是說 BO 和 BO 間需要由一個 service facade 做為橋樑。而這個 facade 便是 presentation 端該看到的。所以我想簡單的 business archetect 可分為三層:
- Service Layer -- 這個是最上層,只接受 user 的 input,回傳則是 PO 的object graph。內部負責溝通各個 BO/utility/或甚至是 Service 本身,而 security 由這裡控管。
- Access Layer -- 這個負責 PO 的 loading,也就是從 database 裡還原持久的物件,典型的 method 像是 find(id), findAll, findByDate.... etc. 都是屬於此類。
- Domain Layer -- 這裡就是最底層了,大多數是 PO,跟 database 的 schema 綁在一起。PO 的 setter 應該設計成最少是 default,最好都是 private權限。要修改這些 PO 得通過另外撰寫的 business method處理。當然這些 business interface 只處理該 PO 本身。
Service Layer 回傳給 presentation 就不轉成 bean 了,直接丟 PO 的 object graph 出去,在 JSP 端直接 navigation (例如:
<bean:write name="user" property="parent.address.street"/>
) 不用再寫一堆 只用一次的 java bean 了。
2 Comments:
網誌管理員已經移除這則留言。
網誌管理員已經移除這則留言。
張貼留言
<< Home