作者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
1F:→ adrianshum:你提到DDD 中的 service,存在於 domain 层,并且只是 09/03 05:36
2F:→ adrianshum:当某些behavior 不适合在特定entity才会写service 09/03 05:36
3F:→ adrianshum:换而言之DDD里面可以完全没有domain service, 与action 09/03 05:37
4F:→ adrianshum:是两码子事 09/03 05:37
5F:推 adrianshum:(sorry I mean controller) 09/03 05:38