Esses posts são para desenvolvedores que querem se aprofundar um pouco mais no desenvolvimento em Flex utilizando-se de Design Patterns.
Darei inicio explicando um Pattern simples que é o Singleton, porém muito utilizado. Temos que tomar cuidado na utilização com o Flex devido as características da linguagem ActionScript.
O Singleton serve para garantir que exista uma única instância em seu projeto. Geralmente é utilizado em conjunto com outros patterns, ou individualmente. Como exemplo podemos imaginar um usuário que está logado no sistema. É necessário que possua uma única instância e deve ser acessível a todo o sistema.
Vamos visualizar a estrutura padrão:
-
package
-
{
-
public class Singleton
-
{
-
private static var _instance:Singleton;
-
public function Singleton(pvt:InnerClass){ }
-
public static function getInstance():Singleton
-
{
-
if(_instance == null)
-
{
-
_instance = new Singleton(new InnerClass());
-
}
-
return _instance;
-
}
-
// Aqui são inseridos os atributos que serão acessíveis a nossa aplicação
-
// Exemplo:
-
// public var usuarioLogado:Usuario;
-
}
-
}
-
class InnerClass
-
{
-
public function InnerClass() {
-
trace("Inner class called");
-
}
-
}
Agora não é mais possível chamar o new Singleton() pois é necessário passar a InnerClass e como esta classa somente é acessível de dentro de nosso Singleton, não é possível instanciá-la.
Em algumas outras linguagens é possível fazer o Singleton sem a necessidade de criar uma classe interna, é necessário somente criar nosso construtor privado private Singleton() porém, no Actionscript não é possível criar construtores privados.
Outro detalhe importante a se atentar é que a classe interna fica posicionada fora do package.
E por último para utilizarmos nosso singleton chamamos através do método getInstance.
-
-
//Para recuperarmos a instancia do Singleton
-
Singleton.getInstance();
-
-
//Para recuperarmos a instância do Usuário Logado
-
Singleton.getInstance().usuarioLogado;