2012-07-20 44 views
1

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

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

该应用程序的设计并未针对外部系统数量的增加做准备(每个版本中至少添加一个系统)。我们有一层(逻辑)处理所有业务逻辑,并且还与外部系统(包括建立请求,验证请求,发送消息,验证响应,处理响应)进行通信。

我想将通信部分与正负逻辑部分分开。在这种情况下哪些设计模式很好?我已阅读,也Catalog of Patterns of Enterprise Application Architecture @ Martin Fowler's,但要么没有我可以使用,或者我没有看到我可以使用它的方式(最有可能是后者:-))。

回答

1

我会建议尝试使用中介模式...我从你的参考网址取这个。 http://sourcemaking.com/design_patterns/mediator我认为这可以很容易地解决意大利面代码的问题,因为太多的通信逻辑与biz逻辑混合在一起。

请让我知道这是否有助于:)