Каков наилучший способ повторного использования функций в среде Flex MVC?
Я использую архитектуру Cairngorm MVC для моего текущего проекта.
У меня есть несколько команд, которые используют один и тот же тип функции, которая возвращает значение. Я хотел бы иметь эту функцию в одном месте и использовать ее повторно, а не дублировать код в каждой команде. Каков наилучший способ сделать это?
3 ответа
Создайте статический класс или статический метод в одном из ваших классов Cairngorm.
class MyStatic
{
public static function myFunction(value:String):String
{
return "Returning " + value;
}
}
Тогда где вы хотите использовать свою функцию:
import MyStatic;
var str:String = MyStatic.myFunction("test");
Другим вариантом является создание функции верхнего уровня (а-ля "трассировка"). Проверьте этот пост, который я написал здесь.
У вас есть много вариантов здесь - публично определенные функции в вашей модели или контроллере, такие как:
var mySharedFunction:Function = function():void
{
trace("foo");
}
... статические методы в новых или существующих классах и т. д. Однако наилучшая практика, вероятно, зависит от того, что должна делать функция. Можете ли вы уточнить?
Создайте абстрактный базовый класс для ваших команд и добавьте свою функцию в защищенную область. Если вам нужно повторно использовать его где-либо еще, преобразуйте его в публичный статический метод в служебном классе.