Re: [問題] MVC程式架構
※ 引述《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
09/03 05:36, 1F
→
09/03 05:36, , 2F
09/03 05:36, 2F
→
09/03 05:37, , 3F
09/03 05:37, 3F
→
09/03 05:37, , 4F
09/03 05:37, 4F
推
09/03 05:38, , 5F
09/03 05:38, 5F
討論串 (同標題文章)