1

在我的 Robotlegs 应用程序中,服务结果通常必须保存在模型中。这将创建具有相同有效负载类型的事件对:

  1. 将数据从服务传送到命令,
  2. 将数据从模型传送到中介

我想知道如何命名这些事件。想象一下我有一个服务:

FooService.getProducts()

然后我有一个模型:

BarModel.setProducts()
BarModel.getProducts()

在检索产品集合后,为服务调度的事件命名的最佳方法是什么?

在调用模型后命名由模型调度的事件的最佳方法是什么?BarModel.setProducts()

或者也许我应该使用具有两种不同类型的单个事件:

public class ProductEvent extends Event
{
    public const SERVICE_PRODUCT_CHANGE:String = 'serviceProductChange';
    public const MODEL_PRODUCT_CHANGE:String = 'modelProductChange';
    ...
4

2 回答 2

0

对于服务,我喜欢指示成功或失败的事件/信号,因为服务经常与由于各种原因而容易失败的外部资源联系。

MyServiceLoadSuccessMyServiceLoadFailure

我认为,即使您的服务悄然失败,成功的想法对服务也是有意义的。

对于模型,他们往往需要知道如何转换数据,他们也可能会失败,但实际上他们正在做出决策,然后为视图或其他模型准备数据,并且通常只是发送更新。

MyModelUpdate

显然,您的具体情况对您选择的语义很重要,但我发现这是一种有用的模式,并且通常适用于各种情况。

于 2013-02-23T23:03:36.447 回答
0

我制定了自己的命名方案来回答我的问题。

首先,最常使用事件在参与者之间传播数据:

  • 服务 > 模型
  • 模型 > 调解员
  • 调解员>模型

其次,不同的事件携带不同的数据类型。第三,相同的数据通常必须传递两次:服务>模型>中介。

基于此,我决定将我的活动命名为:

<class>Event_<payload>

whereclass是调度事件的类的payload名称,并且是更改的公共属性的名称。例如:

  • ProductServiceEvent_products
  • ProductModelEvent_products
  • ProductViewEvent_products

每个事件只有一种类型,称为CHANGE

于 2013-03-05T16:07:21.847 回答