2011-12-24 109 views
5

从下面的棱镜文档,它说有四种方式跨模块通信 -与棱镜之间的模块通信?

  • 解决指挥
  • 地区范围内
  • 共享服务
  • 事件汇总

    1. 我可以只需选择其中一种方法并将其应用于所有跨模块通信?还是应该根据情况使用不同的方法?
    2. 特别是,在一个应用程序编写我现在有一个模块中的按钮,当用户点击它时,我想在另一个模块中启动一个线程。我将使用哪种通信方法来处理这种情况?

回答

7

答1:是的,你可以使用一个单一的方法全面结束。大多数情况下,这样做会更容易。

Ans 2:我建议您使用Event Aggregation来做到这一点。这样,按钮单击和线程执行之间的耦合就非常松散。这样,监听模块只需知道一个单独的事件,无论它来自何处。

由于,它是一个单通知和不是一堆相互关联通知/通信的,最好是骨料的事件,而不是创建一个共享服务

+0

让我们假设我有两个模块,即采购和库存。那么我怎样才能处理两个模块的交易?如果在购买或库存中有任何错误,那么事务应该回滚。 – 2017-08-22 09:23:01