关于Duwamish中的Facade.请各位来指教。
怎么也学不像。为什么我的外观中的方法和业务规则中的方法差不多?
请教:业务外观中定义的方法有什么原则么?如何实现GOF所谓的“提供统一的接口”?
问题点数:100、回复次数:18Top
1 楼Godshow()回复于 2004-09-01 09:02:47 得分 0
我送分这么积极,得分的怎么不积极呢Top
2 楼khpcg(欢乐英雄)回复于 2004-09-01 09:17:41 得分 2
帮你UP
我不懂这方面的知识没法帮你Top
3 楼Godshow()回复于 2004-09-01 11:50:11 得分 0
UPTop
4 楼Godshow()回复于 2004-09-02 08:05:07 得分 0
我就不信没人回答Top
5 楼zjsen(位高权重责任轻,钱多事少离家近,睡觉睡到自然醒, 数钱数到手抽筋. )回复于 2004-09-02 08:28:59 得分 40
外观模式是在要通过一系列业务逻辑类的操作才能完成一个业务情况下,把调用这些类的逻辑封装在一个类里,业务外观中类应该从用户的角度去封装,类的方法可以想象为用户要完成一个完整的业务的几个步骤,通常来说这样的一个步骤都会涉及到几个业务逻辑的类的操作。如果业务比较简单,在业务层就能用一个单独的逻辑类能完成的话,就没必要实现外观了Top
6 楼wangdequan1024(紫夜)回复于 2004-09-02 08:35:22 得分 2
不太清楚,学习Top
7 楼Godshow()回复于 2004-09-02 10:31:01 得分 0
是说业务外观是由业务规则composite而成的?
那么数据验证部分我要做在业务规则层?Top
8 楼noahart(八卦小子)回复于 2004-09-02 11:00:37 得分 10
我的理解是业务外观应该从用户考虑,可以以不同的方式把数据呈现给用户.
而真正的业务逻辑是在业务规则层处理的,包括数据验证..Top
9 楼Godshow()回复于 2004-09-02 11:20:15 得分 0
刚才是以为是Web可以绕过BF直接用BR层。
再看一遍Duwamish的vsd,觉得应该是BF可以绕过BR直接用DA层。
有些清晰了。Top
10 楼zjsen(位高权重责任轻,钱多事少离家近,睡觉睡到自然醒, 数钱数到手抽筋. )回复于 2004-09-02 11:57:59 得分 0
外观层只是能业务层的一个概括,web层可以访问外观层,也可以访问业务层.
外观层是由业务层来实现的,但是业务层的东西不定都要出现在外观层
数据验证两层都有的,公共的应该放在业务层Top
11 楼happyno7(夕丁)回复于 2004-09-02 12:06:35 得分 40
怎么也学不像。为什么我的外观中的方法和业务规则中的方法差不多?
----------------------------------------------------------------
我用外观模式时,web调用facade中的方法,但facade中不写业务的实现,facade的方法调用BR层的方法,而BR层的这个方法可能包含很多规则,由多个private方法组成。
web做数据验证,个人觉得的在界面层用javascript去控制是最好的。可以写一些.js文件,在页面中包含进去。
建议BF不直接访问DA层,其实外观模式和其它一些adapte模式,策略模式..等等,形式都是类似的,把外观模式和其它模式结合起来,或者变成其它模式,很简便。基于这点,BF就更不能直接去访问DA层了。Top
12 楼happyno7(夕丁)回复于 2004-09-02 12:11:08 得分 0
不同意 zjsen 说的:“外观层只是能业务层的一个概括,web层可以访问外观层,也可以访问业务层.”
如果用了外观模式把一组相关业务封装起来,web层还可以访问业务层,要facade层简直没有什么意义。没有使用外观模式的,web层当然可直接访问业务层了。
Top
13 楼zjsen(位高权重责任轻,钱多事少离家近,睡觉睡到自然醒, 数钱数到手抽筋. )回复于 2004-09-02 14:13:08 得分 0
facade层简直没有什么意义
-----------------------
外观层的意义在于简化接口,概括流程.外观只是业务层的一个补充.通常情况下外观层不会业务层封装起来(这点duwamish就是例子,它只对几个重要且复杂的操作实现外观层).很多时候web层需要灵活控制业务流程,需要直接调用业务层.
web做数据验证,个人觉得的在界面层用javascript去控制是最好的。可以写一些.js文件,在页面中包含进去。
-----------------------
数据验证不是仅仅做些数据格式的合法性判断的,很多情况光是脚本是无法检验的.这种方式只能做为补充,用来增强界面友好而已,是无法代替业务层的数据验证的.另外,用脚本验证的数据是不可信的,因为ie端完全可以禁用脚本或者改客户端的脚本来达到输入非法数据的目的
Top
14 楼Godshow()回复于 2004-09-02 18:08:04 得分 0
TO zjsen,你的意思是Web层可以访问BF也可以访问BR?
但是我看Duwamish的UML图里画的Web层只访问BF,而BF访问BR和DA.
数据验证如果两层都有,那么如何分工?Top
15 楼danlog(龙帝)回复于 2004-09-03 08:46:10 得分 2
正在研究Duwamish
学习!!Top
16 楼yingshis(英石)回复于 2004-09-03 09:07:05 得分 2
upTop
17 楼web_gus(树欲静而风不止)回复于 2004-09-03 09:20:33 得分 2
正在看duwamish,
学习!!Top
18 楼Godshow()回复于 2004-09-03 09:58:19 得分 0
又没人答了?Top




