Как создать вспомогательные функции в приложении Flex - PullRequest
1 голос
/ 09 марта 2011

У меня есть приложение flex, и я использую структуру cairngorm -

src / com / mysite / editor / model / содержит следующие две вещи

EditorModelLocator.as (глобальные приложения с принудительным применением Singleton), EditorGlobalConstants.as (содержит все константы), как показано ниже

public static const SUPPORT_PHONE:String = '800-865-7496';
public static const SUPPORT_EMAIL:String = 'support@mysite.com';

Мне было интересно, где лучше всего разместить вспомогательные методы. Мне нужно, чтобы они были методами, которые я могу использовать за пределами одноэлементного принудительного класса. Имеет ли смысл поместить его в глобальные константы? Единственное, против этого, я всегда использую EditorGlobalConstants одинаково:

EditorGlobalConstants.SUPPORT_PHONE

Примером «вспомогательной функции» является следующий:

public var blank(value:String):Boolean {
  if( value == '' || value == null ) return true;
  return false;
}

Я могу хранить всю эту информацию в EditorGlobalConstants, но мне было интересно, может быть, EditorHelpers.as будет лучше, и как я могу создать / использовать это решение?

Спасибо!

Эндрю Торп

Ответы [ 2 ]

1 голос
/ 09 марта 2011

Не знаком с тем, как cairngorm стремится что-то делать, но в AS3 функции не обязательно должны быть частью класса.

Например, у вас может быть файл с именем helperFunction.as с содержанием:

package my.package {
  public function helperFunction(arg1:Object, arg2:String):void {
    // Do stuff
  }
}

Затем просто импортируйте этот метод, как и все остальное:

import my.package.helperFunction

и вы можете использовать его в своем коде.

Просто выберите пакет, который будет иметь смысл для метода, чтобы жить (вероятно, в том же пакете, в котором определены объекты, с которыми он должен помочь).

0 голосов
/ 09 марта 2011

Если вы собираетесь использовать свои вспомогательные методы не только в своем синглтон-классе, было бы лучше разместить их где-то выше в иерархии.Вы можете легко найти это место самостоятельно.Давайте попробуем:

  1. Разбейте ваше приложение (в воображении / на бумаге / что угодно) на коробки.Каждый класс представляет собой отдельную коробку.
  2. Поместите их в структуру.Вам просто нужно увидеть, какие ящики расположены внутри каких.
  3. Отметьте классы ящиков, где вы собираетесь использовать эти методы.
  4. Найдите верхний уровень, куда вы идетеиспользовать их и разместить там свой класс.

Давайте рассмотрим пример .. предположим, у вас есть такая структура:

ToplevelApplication
|-BoxAtLevel_1
| |-BoxAtLevel_2
...

, если я хочу, чтобы мои помощники использовались только в BoxAtLevel_2, япоместил бы их туда:

|-BoxAtLevel_1
| |-BoxAtLevel_2
| |-Helpers

И так далее ... если у вас есть какие-либо проблемы - поместите вашу структуру здесь, и я помогу.

Кроме того, о EditorHelpers.as.Это вещи на уровне экземпляра или скорее на уровне класса?Это то, что будет определять способ их использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...