【问题标题】:How should communication be done n-Tier applications between layers?层与层之间的 n-Tier 应用程序应该如何进行通信?
【发布时间】:2023-11-23 16:36:01
【问题描述】:

最近我一直在讨论在 n 层架构中处理链上通信的最佳方式。

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

【问题讨论】:

  • 澄清你所说的 n 层是什么意思。根据我的定义,异常不能向上或向下传递,因为它们(可能)在不同的计算机上运行,​​并且您需要某种形式的网络层来处理此类通信。在这种情况下,我希望得到诸如 RPC 之类的答案、消息队列和 UDP 之类的答案。等等。

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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      我想说,就异常处理完成而言,您走在正确的轨道上——即责任链模式的实现。将异常向上抛出总是好的。至于另一个(活动/代表),我不太明白你的说法,所以无法对此发表评论。

      【讨论】:

        最近更新 更多