作者cyclone350 (老子我最神)
看板java
標題Re: [問題] MVC程式架構
時間Mon Sep 2 21:54:12 2013
※ 引述《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
→ adrianshum:你提到DDD 中的 service,存在於 domain 層,並且只是 09/03 05:36
→ adrianshum:當某些behavior 不適合在特定entity才會寫service 09/03 05:36
→ adrianshum:換而言之DDD裡面可以完全沒有domain service, 與action 09/03 05:37
→ adrianshum:是兩碼子事 09/03 05:37
推 adrianshum:(sorry I mean controller) 09/03 05:38