在我的Robotlegs应用程序中,服务结果通常必须保留在模型中。这将创建具有相同有效负载类型的事件对:
我想知道如何命名这些事件。想象一下,我有一项服务:
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';
...
答案 0 :(得分:0)
使用服务我喜欢指示成功或失败的事件/信号,因为服务经常与外部资源接触,这些资源由于各种原因而容易出现故障。
MyServiceLoadSuccess
和MyServiceLoadFailure
即使您的服务悄然失败,我认为成功的想法对服务也有意义。
对于模型,他们倾向于需要知道如何转换数据,但他们也可能会失败,但实际上他们正在制定决策,然后为视图或其他模型准备数据,并且通常只是发送更新。
MyModelUpdate
显然,您的具体情况对您选择的语义很重要,但这是一种我认为有用并且通常适用于各种情况的模式。
答案 1 :(得分:0)
我已经制定了自己的命名方案来回答我的问题。
首先,大多数情况下,事件用于在actor之间传播数据:
其次,不同的事件携带不同的数据类型。 第三,相同的数据通常必须传递两次:服务> &model;介体。
基于此,我决定将此事件命名为:
<class>Event_<payload>
其中class
是调度事件的类的名称,payload
是更改的公共属性的名称。例如:
每个事件只有一个名为CHANGE
的类型。