星期五, 5月 14, 2004

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:

At 1:53 上午, Anonymous 匿名 said...

網誌管理員已經移除這則留言。

 
At 1:57 上午, Anonymous 匿名 said...

網誌管理員已經移除這則留言。

 

張貼留言

<< Home