JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Software Design  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 DAO 屬於 Controller 層?
konasJSP





發文: 160
積分: 0
於 2007-09-07 16:02 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
今天主管看了我的程式碼
問了我一個問題
"DAO 屬於 MVC 種的那一層? 他一定不是V, 那是 C or M"
我想了想 回答
"不是M也不是C, 免強要算的話 算是M"
但是 主管回我是C 因為他說 DAO包含了SQL 所以含有商業邏輯 算是C
但是我覺得很奇怪 DAO 的那些SQL 算是商業邏輯嗎?
基本上 那些SQL 不過是依存著資料的關連性和條件 存取資料
只要資料架構的設計的一樣 放諸四海 不管怎樣的商業邏輯皆通用阿
請問各位大大們 DAO 真的是 Controller 嗎?

補充一下 主管覺得我程式碼的問題在哪
我們案子是用JSF寫的
我在BackingBean上寫了一些商業邏輯流程控制的fields
但是主管說要把這個field提出去寫成另一個class
我覺得很奇怪 為什麼明明都是給這支backing用的field卻要提到另一個class
他說Controller不應該包含狀態
那些應該提出去做成一個class(類似model)
請問Controller不應該擁有field嗎
所有流程控制的屬性值應該提出Controller成為一個class嗎?


konasJSP edited on 2007-09-07 16:38
reply to postreply to post
我不聰明 所以要努力
我不富有 所以要有夢想
作者 Re:DAO 屬於 Controller 層? [Re:konasJSP]
anthonychen

外線交給我

版主

發文: 2033
積分: 8
於 2007-09-07 16:25 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
1. SQL == 商業邏輯?
2. 就算 SQL == 商業邏輯,商業邏輯怎麼會在 Controller level ?


reply to postreply to post
作者 Re:DAO 屬於 Controller 層? [Re:konasJSP]
jimmy14

Give me J-Power !



發文: 787
積分: 3
於 2007-09-07 16:27 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
http://www.corej2eepatterns.com/Patterns2ndEd/index.htm
跟老闆說 MVC 已經過時啦 Cool
DAO 是在 Integration Tier

(不過這 J2EE Pattern 也已經出來好久啦)


reply to postreply to post
作者 Re:DAO 屬於 Controller 層? [Re:anthonychen]
konasJSP





發文: 160
積分: 0
於 2007-09-07 16:28 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
anthonychen wrote:
1. SQL == 商業邏輯?
2. 就算 SQL == 商業邏輯,商業邏輯怎麼會在 Controller level ?

因為他說SQL是依照商業邏輯寫成的
所以算商業邏輯


reply to postreply to post
我不聰明 所以要努力
我不富有 所以要有夢想
作者 Re:DAO 屬於 Controller 層? [Re:konasJSP]
caterpillar

良葛格

版主

發文: 2613
積分: 70
於 2007-09-07 17:21 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
DAO嚴格來說,是屬於Model以下的資料存取,為了隔離實際存取的API實作,而用介面隔離開來。。您的答案是正確的:「免強要算的話 算是M」。

reply to postreply to post
良葛格學習筆記
作者 Re:DAO 屬於 Controller 層? [Re:konasJSP]
yahoo1234tw





發文: 668
積分: 0
於 2007-09-08 09:43 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
konasJSP wrote:
因為他說SQL是依照商業邏輯寫成的
所以算商業邏輯

因為整個系統都是依照商業邏輯寫成的
故整個系統都算商業邏輯


reply to postreply to post
專業的職業演員不會站在路邊演白戲,但是這裡有很多以寫程式為業的人很喜歡作賤自己跟別人,沒事就免費幫一些懶學生寫作業。
作者 Re:DAO 屬於 Controller 層? [Re:konasJSP]
老兲





發文: 13
積分: 0
於 2007-09-27 13:12 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
MVC模型并不是那么界限分明的。
DAO严格说,属于M,M包括实体及对实体的CRUD(创建、查询、更新和删除)


reply to postreply to post
Java Opensource 英文圖書 English Books 商貿時代 Company List
作者 Re:DAO 屬於 Controller 層? [Re:konasJSP]
justin1976

cute_little



發文: 41
積分: 0
於 2007-11-21 13:43 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
C 算商業邏輯? 對我的觀念來說這有很大的issue。
我認為C跟Business logic是不同的東西。
HIbernate 是M沒錯。
如果說M裡會有商業邏輯的話那代表設計上是否有需要考慮的地方所以才將business logic放到DAO。


reply to postreply to post
//========= 學無止盡 =========//
作者 Re:DAO 屬於 Controller 層? [Re:老兲]
qrtt1





發文: 1747
積分: 31
於 2007-11-21 14:27 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
老兲 wrote:
MVC模型并不是那么界限分明的。
DAO严格说,属于M,M包括实体及对实体的CRUD(创建、查询、更新和删除)


這種概念比較像 active record 的做法 有 data 也有 access operation

不過 dao 是要 stateless, 經手的 model 長什麼樣子都不留下記憶
純粹把狀態存到某個貯存體內


qrtt1 edited on 2007-11-21 15:55
reply to postreply to post
蝸牛角上爭何事?石火光中寄此身,隨富隨貧且歡樂,不開口笑是癡人。
my notes
» JWorld@TW »  Software Design

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8