Re: [問題] MVC程式架構

看板java作者 (老子我最神)時間10年前 (2013/09/02 21:54), 編輯推噓1(104)
留言5則, 1人參與, 最新討論串4/6 (看更多)
※ 引述《swpoker (swpoker)》之銘言: : 4.發現某個作業page也需要差不多的流程,但是顯示的頁面是不同的 : 所以要怎麼做? : *.共用? : XXXAPageAction: : run(){ : readdata(); : doaaa(); : dobbb(); : writeccc(); : if(aa){ : if(來源==XXXXB){ : gotopageB1(); : }else{ : gotopage1(); : } : }else{ : if(來源==XXXXB){ : gotopageB2(); : }else{ : gotopage2(); : } : } : } : 或是 : *.複製? : XXXBPageAction: : run(){ : readdata(); : doaaa(); : dobbb(); : writeccc(); : if(aa){ : gotopageB1(); : }else{ : gotopageB2(); : } : } : 上述的兩個方式,對於需求異動的應變能力相當的低 : 看看php asp 純jsp 就知道了 : 所以把上述只跟企業有關的程式碼通通集合在一起,取個大家了解的名子 : 這樣不但可以重覆使用企業流程,同樣的也方便異動 : 所以你的癥結就在於使用DFD的思維去看系統設計 : 而忽略了企業行為(邏輯 流程 等...)的重要性 : (基本上看到"資料存放在資料庫"就知道是DFD的思維了) : 因為資料存放在那裡並不是物件導向設計第一要考慮的事情 http://ppt.cc/loLS 這是 DDD 的介紹網頁 其中Service中提到: 領域中的某些重要概念是一種行為(Behavior),會與其他的Entities發生互動,又沒辦法 歸屬於任何一個Entity。例如『訂房』,會與旅客、房間發生互動關係,但要歸到旅客或 房間這2個Entity,卻又不太合理,最適當的方式是設計成Service。 跟swpoker所說的: 所以把上述只跟企業有關的程式碼通通集合在一起,取個大家了解的名子 這樣不但可以重覆使用企業流程,同樣的也方便異動 以房間管理這例子來講,看起來似乎沒差? DDD 的 Service 可以直接給 Action 用 依照 swpoker 所講的,也一樣會產一個 Service 給 Action(或model) 用 實在是不明白是哪一個觀念相去甚遠... By the way, struts自己的介紹 Action 就是 model層(包含企業邏輯的那層) 而真正的橋接器Controller是Struts自己的Action Proxy? 所以我把Action看成workflow的癥結點就在這 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.193.205.223

09/03 05:36, , 1F
你提到DDD 中的 service,存在於 domain 層,並且只是
09/03 05:36, 1F

09/03 05:36, , 2F
當某些behavior 不適合在特定entity才會寫service
09/03 05:36, 2F

09/03 05:37, , 3F
換而言之DDD裡面可以完全沒有domain service, 與action
09/03 05:37, 3F

09/03 05:37, , 4F
是兩碼子事
09/03 05:37, 4F

09/03 05:38, , 5F
(sorry I mean controller)
09/03 05:38, 5F
文章代碼(AID): #1I99Y6uf (java)
文章代碼(AID): #1I99Y6uf (java)