Bom dia, Esse é meu primeiro post aqui, mas vamos lá hehehe... Sobre utilizar um Singleton para capturar e disparar eventos temos alguns prós (óbvios) e alguns contras (nem tão óbvios assim). Trabalho em Flex com aplicações de larga escala (ERP) e posso te dizer que depende muito da tua aplicação.
O Singleton de EventDispatcher é útil apenas quando queremos gerenciar coisas únicas no sistema. Ou seja, geralmente você pode utilizar para eventos do "Workspace" da aplicação. O problema é quando temos uma abordagem MDI (Multiple Document Interface) ou TDI (Tabbed Document Interface), onde podemos ter duas telas iguais abertas por exemplo. Quando você disparar o evento do teu Singleton ambas as telas vão capturar o evento, e isso pode causar erros bem bizarros. Como regra geral, não tem problema utilizar um Singleton para eventos, mas eu recomendo utilizar apenas para a parte macro da aplicação. Para os casos de uso do sistema, recomendo a utilização de eventos no próprio escopo do caso de uso. E como a Gabriela comentou, sempre que possível passe o weakreference como true e remova o eventlistener após o uso. Porque o Garbage Collector do Flex nunca irá passar e tirar da memória algo que tenha um evento atrelado. Meus 50 centavos... Casali On 15 abr, 08:06, Gabriela Trindade Perry <[email protected]> wrote: > 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 [email protected] Para sair da lista, envie um email em branco para [email protected] Mais opções estão disponíveis em http://groups.google.com/group/flexdev To unsubscribe, reply using "remove me" as the subject.
