То есть вы говорите, что у вас есть два пользовательских жеста, «Экспорт» и «Сводка проекта печати», которые основаны на одной и той же функции проверки?Если я правильно прочитал ваш пост, вы можете рассчитать его один раз и получить два получателя
private var _isValid:Boolean;
public function validate():Boolean
{
_isValid = //result of calculation
dispatchEvent( new Event("isValidChange") )
}
[Bindable(Event="isValidChange")]
public function get canExport():Boolean
{
return _isValid;
}
[Bindable(Event="isValidChange")]
public function get canPrint():Boolean
{
return _isValid;
}
Теперь некоторые могут сказать, что, поскольку они возвращают одно и то же значение, мы должны избавиться от получателей и вернуть простоеBindable] общественная ценность.Но так как это похоже на первую реализацию этой функции, наличие двух отдельных функций позволяет вам получить некоторую надежность перед лицом изменения пользовательского интерфейса и требований к валидации.
Лично, если логика валидации становится слишком тяжелой, я бы оставил этозначение в моей модели "public var isValidProject", поскольку модель должна знать, является ли она действительной или нет.Затем уровень представления будет использовать это значение, чтобы определить, как представить пользователю, что это недопустимый проект (всплывающие окна, оповещения, строки ошибок).
В других случаях я бы установил на презентаторе этих кнопок «set selectedProject» и запустил проверку и / или изменил состояние включения моих кнопок.
Мне действительно было бы интересно услышать другие мысли по этому поводу.