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.

Responder a