如何在层之间进行n层应用程序的通信?

时间:2009-08-07 13:50:03

标签: .net exception events communication n-tier-architecture

最近,我一直在讨论处理n层体系结构链的最佳方式。

目前我正在做的方法是在层之间抛出和处理错误,并使用事件/委托进行其他通信(更新进度条等)。这些是最好的方法还是我忽略了另一种被认为是更好的做法?

3 个答案:

答案 0 :(得分:1)

我认为,就异常处理工作而言,您已走上正轨 - 这就是责任链模式实施。将异常抛到链上总是好的。至于另一个(事件/代表),我并不完全理解你的陈述,所以无法对此发表评论。

答案 1 :(得分:1)

异常确实是处理较低层错误的好方法。

在我看来,当拥有另一个对象的一个​​对象需要自定义该对象时,委托最有用。如果你的层在逻辑上“拥有”较低层上的对象,那么这可能是有意义的 - 否则,我可能会回避委托模式并使用事件。

答案 2 :(得分:1)

我尝试使用适配器模式。主要对象位于逻辑层中,并使用复合对象进行包装,以便表示和数据访问层可以工作。大多数表示和数据访问层类都使用接口。包装器(复合)对象位于表示层和数据访问层中,并实现这些层的接口。

除了复合对象之外,还有控制器对象可以从逻辑对象中提取数据并创建新对象(即字符串列表)。