2013-02-17 95 views
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'; 
    ... 
+0

有沒有原因你不使用信號? https://github.com/robertpenner/as3-signals – ThanksBro 2013-02-18 12:30:49

+0

同樣的問題適用於信號,不是嗎?如果我使用SignalMap,我必須擴展Signal類並創建FooServiceSignal和BarModelSignal? – hidarikani 2013-02-18 12:44:54

+1

對於信號,我會將其稱爲BarServiceProductChanged和BarModelProductChanged,或者與Signal後綴相同。在命名中,最重要的是要跟上你命名的東西,並且當你開始在團隊中工作時,你會同意命名。例如,我曾經把信號後綴放在我所有的信號上,但是在Project項目中,他們不會在信號上使用後綴,而只在命令上使用,所以我一直在玩。只需在所有代碼中保持相同的方式。 – ThanksBro 2013-02-18 14:59:00

回答

0

我已經制定了自己的命名方案來回答我的問題。

首先,最經常的活動是用來參與者之間傳播數據:

  • 服務>模型
  • 模型>中介
  • 中介>模型

其次,不同的事件攜帶不同的數據類型。第三,相同的數據通常必須傳遞兩次:service> model> mediator。

在此基礎上,我決定命名我的事件是這樣的:

<class>Event_<payload> 

哪裏class是分派事件和​​類的名稱是改變了公共財產的名稱。例如:

  • ProductServiceEvent_products
  • ProductModelEvent_products
  • ProductViewEvent_products

每個事件具有僅一種類型的稱爲CHANGE

0

的服務,我喜歡事件/指示成功或失敗的信號,因爲服務往往使與容易失敗外部資源接觸出於各種原因。

MyServiceLoadSuccessMyServiceLoadFailure

即使你的服務悄然失敗成功的想法是有道理的服務,我想。

隨着他們傾向於需要知道如何轉換數據的模型,他們也可能會失敗,但實際上他們正在做出決定,然後爲視圖或其他模型準備數據,並且通常只是發送更新。

MyModelUpdate

顯然您的具體情況爲您選擇的語義重要的,但是這是我發現有益的,普遍適用於各種情況下的模式。