Eu não sou a Gabriela, mas vamos lá... Quanto a utilizar funções para chamadas de serviço, você pode utilizar a abordagem de Proxy. Você cria um Proxy para cada serviço de requisição de dados que você tem e essa classe tem como responsabilidade fazer isso. Esse "Proxy" nada mais é que uma classe que herda de EventDispatcher.
/** * Classe Proxy responsável pela comunicação com a entidade XXX. * Tem como responsabilidade centralizar o acesso de dados na camada Java, criando * assim um melhor reaproveitamento de código. * @author Leonardo Casali */ public class MyProxy extends Proxy { private var remoteObject : RemoteObject = new RemoteObject(DESTINATION); public function getAllXXX(userName : String) : void { // Aqui voce faz a chamada para o RemoteObject e adiciona os listeners. } private function getAllXXXResultHandler(event : ResultEvent) : void { // Dispara um evento personalizado, e encapsula o resultado no evento. // Essa parte você pega na aplicação que chamou. } private function getAllXXXFaultHandler(event : FaultEvent) : void { // Dispara um evento personalizado, e encapsula o resultado no evento. // Essa parte você pega na aplicação que chamou. } Usando isso, basta instanciar o Proxy, colocar os eventlisteners para os eventos de sucesso e erro, e disparar o método. Isso garante que se você refatorar o Java, por exemplo, mexa em apenas um local. Quanto as variáveis apenas no Application, você está trabalhando com variáveis globais, e isso, a não ser que seja uma aplicação de meio expediente, descartável, é ruim (vai se tornando uma bola de neve). As variáveis devem sempre ter o menor escopo possível. O argumento por trás disso é que toda vez que você aumenta o alcance, você tem mais código que potencialmente modifica a variável, e a complexidade, portanto, é mais induzida na solução. Os motivos que você utilizaria uma variável global e a minha explicação abaixo... * Se a variável nunca vai mudar, então é uma constante, não uma variável. * Se a variável exige o acesso universal, em seguida, duas sub- rotinas devem existir para obter e definir isso, e elas devem ser sincronizadas. * Hoje seu sistema é pequeno. Mas ele pode (e provavelmente vai) crescer com o tempo. Sempre pense se você realmente deve utilizar a variável no ambito global ou não. Vai ver que 99% das vezes a variável não é necessária para toda a aplicação. Recomendo que você dê uma olhada no padrão MVC, que ajudaria bastante na situação que tu descreve... Mas são minhas opiniões... Abraços, Casali On 15 abr, 08:46, Helio Antonio Francisco Silva <helio.afsi...@gmail.com> wrote: > Massa Gabriela, ja que voce tocou nesse assunto ou vou falar > como eu faço as minhas aplicações, ai voce ja me fala se to fazendo certo > ou errado. > > Eu evito o maximo possivel usar listeners, entao eu faço o seguinte, quando > executo alguma ação como chamada de webservice ou chamar o banco eu chamo os > metodos todos da raiz principal. ou seja dos modulos eu acesso > > parentApplication.nomedafuncao > > o resultado eu deixo e uma variavel publica que tambem posso acessar em > > parentApplication.nomedavariavel > > Peguei isso de quando programava em flash com as famosas _global e _level, > assim eu consigo acessar sem problema nenhuma qualquer variavel de todos os > locais. > > E uma ma pratica ? sempre estou disposto a melhorar; > 2010/4/15 Gabriela Trindade Perry <gabrielape...@hotmail.com> > > > > > Pra saber se consome mais eu teria que saber qual a alternativa. > > Usar Singletons sempre tem o preço de nunca sair da memória, já que tu > > não pode matar um Singleton. > > Dá pra fazer um monostate, mais ou menos como o miso falou (um > > monostate é uma classe com variáveis estáticas) > > > A moral é a seguinte: > > 1. sempre que possivel passar true para o parametro weakreference do > > addeventlistener > > 2. remover o listener quando nao for mais necessario > > > Outra coisa que eu acho é que as vezes conforto vale mais que > > desempenho. Por isso eu as vezes uso Singletons, porque eles são muito > > confortaveis :0) > > > -- > > Você recebeu esta mensagem porque está inscrito na lista "flexdev" > > Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com > > Para sair da lista, envie um email em branco para > > flexdev-unsubscr...@googlegroups.com > > Mais opções estão disponíveis emhttp://groups.google.com/group/flexdev > > > To unsubscribe, reply using "remove me" as the subject. > > -- > Desenvolvedor Web -- Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com Para sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.com Mais opções estão disponíveis em http://groups.google.com/group/flexdev