Высыхание / рефакторинг кода flex / actionscript - PullRequest
0 голосов
/ 20 июня 2010

У меня есть что-то вроде 10 компонентов, которые имеют очень похожий код, за исключением цели, к которой он применяется, и некоторых других незначительных отличий.

Например, я возвращаю xml в component1 и component2, которые отличаются следующим образом:

component 1: event.result.names.name
component 2: event.result.phones.phone

Затем я связываю их с List, и имя этого списка зависит от компонента.

component 1: nameslist.dataProvider = 
component 2: phoneslist.dataProvider = 

Как мне создать единственный метод, который бы принимал в качестве параметров только имена / указатели / ссылки на объекты, над которыми мне нужно работать. Например, nameslist или phoneslist как List или .phones.phone против .names.name для структуры возвращаемого xml?

1 Ответ

2 голосов
/ 20 июня 2010

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

Итак, у вас будет такое свойство:

public var dataProviderFunction : Function;

и значение, которое вы дадите, может быть примерно таким:

public function getNamesDataProvider(object:XML):xml{ return xml.namesList.dataProvider }

Или вот так:

public function getNamesDataProvider(object:XML):xml{ return xml.phonesList.dataProvider }

Посмотрите, как реализован исходный код класса List, и посмотрите, как реализованы labelFunction и itemToLabel.

...