woaidongmao

文章均收录自他人博客,但不喜标题前加-[转贴],因其丑陋,见谅!~
随笔 - 1469, 文章 - 0, 评论 - 661, 引用 - 0
数据加载中……

两种模式的选择

先出图

image

1、A、B、C、D、E都是对象或者视为一个独立的功能模块;红色的箭头代表数据流,绿色箭头和黄色块标示最终数据产出路径;

2、模式1是一个串联的数据流向,符合模型与直观的逻辑概念。但是缺点是:产生控制耦合,A存在的前提必须以B存在为基础,A必须知道B的接口和返回。同时需要判断B的返回。整个业务的逻辑分散在A、B、C、D、E中,增加理解,维护,调试的难度;

3、模式2也能够很好的完成功能,所不同的是,把分散在A、B、C、D、E中整个业务逻辑抽离出来,放在一个“业务逻辑控制器”当中,此时,A、B、C、D、E彼此不存在任何关联,他们都只会被业务控制器调用。最终数据由控制器产出。

 

我认为模式2明显好过模式1。虽然模式1符合直观的逻辑思维,处理过程贴近业务原形,但事实上却不是个好方案。

posted on 2008-08-07 23:54 肥仔 阅读(1780) 评论(3)  编辑 收藏 引用 所属分类: 编程思想

评论

# re: 两种模式的选择  回复  更多评论   

是的,模式2是一个很好的方案,它有很多的好处,不过并不是任何时候都需要把事情弄得这么复杂吧
2008-08-08 10:03 | aGAric

# re: 两种模式的选择  回复  更多评论   

我觉得模式二好一些.比如说如果因为某些原因产品的生产顺序需要改变,如果用模式一,国为每一个产品生产的时候是依赖其它产品的,所以需要更改产品链当中的相关产品的生产代码.但是如果用模式二,就只需要修改控制器的代码.
2008-08-08 11:04 | cexer

# re: 两种模式的选择  回复  更多评论   

严重同意。
2008-12-20 23:22 | 杨成

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理