Каков наилучший способ повторного использования функций в среде Flex MVC?

StackOverflow https://stackoverflow.com/questions/429599

Вопрос

Я использую архитектуру Cairngorm MVC для моего текущего проекта.

У меня есть несколько команд, которые используют один и тот же тип функции, которая возвращает значение. Я хотел бы иметь эту функцию в одном месте и использовать ее повторно, а не дублировать код в каждой команде. Каков наилучший способ сделать это?

Это было полезно?

Решение

Создайте статический класс или статический метод в одном из ваших классов Cairngorm.

class MyStatic
{
    public static function myFunction(value:String):String
    {
        return "Returning " + value;
    }
}

Тогда где вы хотите использовать свою функцию:

import MyStatic;

var str:String = MyStatic.myFunction("test");

Другим вариантом является создание функции верхнего уровня (а-ля "trace"). Ознакомьтесь с этой записью, которую я написал здесь .

Другие советы

У вас есть много вариантов - общедоступные функции в вашей модели или контроллере, такие как:

var mySharedFunction:Function = function():void
{
   trace("foo");
}

... статические методы в новых или существующих классах и т. д. Однако наилучшая практика, вероятно, зависит от того, что должна делать функция. Можете ли вы уточнить?

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top