2013-02-17 3 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

+0

Тот же вопрос относится к сигналам, не так ли? Если я использую SignalMap, мне нужно расширить класс Signal и создать FooServiceSignal и BarModelSignal? – hidarikani

+1

С помощью сигналов я бы назвал это BarServiceProductChanged и BarModelProductChanged или же, но с суффиксом Signal. В наименовании важнее всего следить за тем, как вы называете материал, и когда вы начинаете работать в командах, вы также согласитесь на именование. Например, я использовал суффикс Signal для всех своих сигналов, но в группе Project они не используют суффикс для сигналов, а только для команд, поэтому я играю. Просто соблюдайте то же самое во всем своем коде. – ThanksBro

ответ

0

Я составил свою собственную схему именования, которая отвечает на мой вопрос.

Прежде всего, наиболее часто события используются для распространения данных между участниками:

  • сервис> модель
  • модель> Посредник
  • медиатор> модель

Во-вторых, различные события переносят разные типы данных. В-третьих, одни и те же данные часто должны передаваться два раза: service> model> mediator.

Исходя из этого, я решил назвать свое мероприятие, как это:

<class>Event_<payload> 

Где class это имя класса, который отправляет событие и payload это имя публичной собственности, что изменилось. Например:

  • ProductServiceEvent_products
  • ProductModelEvent_products
  • ProductViewEvent_products

Каждое событие имеет только один тип, который называется CHANGE.

0

С помощью служб мне нравится событие/сигналы, указывающие на успех или неудачу, поскольку услуги часто делают контакт с внешними ресурсами, которые склонны к сбою по разным причинам.

MyServiceLoadSuccess и MyServiceLoadFailure

Даже если ваша служба спокойно терпит неудачу идея успеха имеет смысл для услуг, я думаю.

С моделями они, как правило, должны знать, как преобразовывать данные, которые они могут также терпеть неудачу, но на самом деле они принимают решения, а затем готовят данные для просмотров или других моделей и часто просто отправляют обновление.

MyModelUpdate

Очевидно ваша конкретная ситуация имеет важное значение для семантики вы выбираете, но это шаблон, который я нашел полезным и в целом применимы ко всем видам ситуаций.