【问题标题】:Design patterns for sending updates to external system向外部系统发送更新的设计模式
【发布时间】:2012-07-19 11:30:23
【问题描述】:

我目前正在重构一个应用程序。这是一家租赁公司的申请。该应用程序通过 Web 服务与外部系统通信。状态的某些变化或某些事件需要调用外部系统。我们有两种类型的调用:

  • 同步 - 例如,当我将对象添加到租赁应用程序时,对象的编号是从外部系统获取的(我等待响应)。
  • 异步 - 当我更改应用程序上的数据时,更改也会发送到外部系统(消息存储在我们的自定义队列中,我不需要来自外部系统的响应)

应用程序的设计并没有为不断增长的外部系统做好准备(在每个版本中,我们至少添加一个系统)。我们有一层(逻辑),它处理所有业务逻辑并与外部系统通信(包括构建请求、验证请求、发送消息、验证响应、处理响应)。

我想将通信部分与业务逻辑部分分开。在这种情况下,哪些设计模式是好的?我已经阅读了Design patterns @ sourcemaking.comCatalog of Patterns of Enterprise Application Architecture @ Martin Fowler's,但要么没有什么我可以使用,要么我看不到我可以使用它的方式(很可能是后者:-))。

【问题讨论】:

    标签: web-services design-patterns integration


    【解决方案1】:

    六边形架构! :) - http://alistair.cockburn.us/Hexagonal+architecture

    这是一种将业务逻辑与应用程序接收和发送事件到外部世界的方式分开的好方法。

    六边形架构模式可能有点太高级了,所以我通常建议先阅读Dependency Inversion Principle,以了解模型应该如何公开稍后由适配器实现的接口。

    【讨论】:

      【解决方案2】:

      我建议尝试使用中介者模式...我从您的参考网址中获取了这个。 http://sourcemaking.com/design_patterns/mediator我觉得这样可以轻松解决意大利面条代码的问题,因为太多的通信逻辑和商业逻辑混杂在一起。

      如果这有帮助,请告诉我:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-21
        • 1970-01-01
        • 2021-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多