Flex: использовать функцию parentApplication из модуля, но с некоторым API
У меня есть приложение, которое загружает модули. Эти модули могут быть разработаны третьими сторонами. Чтобы облегчить им задачу, я хотел бы разработать API, чтобы они знали, какие функции они могут вызывать и использовать.
Так что я знаю, что это может работать в модуле, но тогда вы должны знать, что есть переменная "расходы" в parentApplication:
// Access properties of the parent application.
private function getDataFromParent():void {
expenses = parentApplication.expenses;
}
Но я бы предпочел что-то вроде этого:
private function getDataFromParent():void {
var myParent : MyAPI = new MyAPI();
expenses = myParent.getExpenses();
}
Так что, если это будет работать так, когда вы начнете кодировать и наберите "myParent". Flex предложит все возможные функции и переменные с подсказкой кода.
Есть идеи, как начать с этим?
Большое спасибо,
Фрэнк
2 ответа
Я бы сделал интерфейс для "родителя" и один для "модулей". Это позволяет вам обрабатывать все модули одинаково и позволяет отдельным разработчикам модулей знать, что предоставляет "родитель".
public class IModule {
// when initialize() is called it will be up to the module's developer to
// retain a reference to the parent and use that for later calls
function initialize(parent:IParent):void;
function doStuff():Boolean;
}
public class IParent {
function getInfo():String;
function foo(value:int):int;
}
Создайте класс с именем MyAPI и инкапсулируйте родительские вызовы.
package com.myAPI
{
public class MyAPI
{
public function MyAPI()
{
}
public function expenses():expenseType{
parentApplication.expenses;
}
}
}
Разработчики вашего модуля должны будут скомпилировать этот класс в свой модуль.