Padrão de Criação

 Singleton

 

É um padrão de projeto de software (do inglês Design Pattern). Este padrão garante a existência de apenas uma instância de uma classe, mantendo um ponto global de acesso ao seu objeto.
Trata-se de um padrão de criação de objetos onde uma única instância da classe deve estar ativa em qualquer momento do ciclo de vida da aplicação. É um padrão muito útil para representar configurações genéricas da aplicação e do ambiente de criação. - A figura ao lado representa um diagrama UML de uma classe singleton.

 

Exemplo:

sing1 = new singleton()
sing2 = new singleton()
if (sing1 = = sing2)
System.Out.Println ("Iguais)
else
System.Out.Println ("Difs.")

Nota linguística: O termo vem do significado em inglês quando se resta apenas uma carta nas mãos, num jogo de baralho.

Muitos projetos necessitam que algumas classes tenham apenas uma instância. Por exemplo, em uma aplicação que precisa de uma infra-instrutora de log de dados, pode-se implementar uma classe no padrão singleton. Desta forma existe apenas um objeto responsável pelo log em toda a aplicação que é acessível unicamente através da classe singleton.

    Exemplos

 Em Java

Exemplo em Java de classe Singleton usada em log de dados. Esta classe suporta inicialização sob demanda e ambientes multi-thread.

 

 Em C++

Exemplo em C++ da implementação de uma classe Singleton.

 

 Em Delphi

Abaixo segue um exemplo de como implementar uma classe Singleton:

Por exemplo, numa classe Fachada, onde se encontra todos os métodos disponíveis para a interface da aplicação, pode ser criado um método dinâmico para que todos os que visualizam essa classe, não criarem mais instâncias da mesma.

 

 Em PHP

Uma implementação do padrão singleton em PHP.

 

 Em VB.NET

Uma implementação do padrão singleton com Visual Basic ponto NET.

 

 Em ActionScript 3

Uma implementação do padrão singleton com ActionScript 3.

 

Fábrica (Factory)

Trata-se de um padrão de criação de objetos onde existe uma classe central (factory) que é o responsável em criar e gerenciar um conjunto de objetos de uma determinada classe. Neste caso, tipicamente as classes geridas pela fábrica não expõem a implementação do construtor, por isso, não há outra forma de instanciar um objeto da classe senão pela chamada à fábrica.

É um padrão útil para gerenciar recursos do sistema ou da aplicação (exemplo: sessões com um SGBD), centralizando as chamadas nas fábricas.

 Ir para Padrões Estruturais.

 


Associação SoftwareLivre

A Associação SoftwareLivre.org (ASL) é uma associação civil sem fins-lucrativos, com sede em Porto Alegre/RS que reúne empresários, profissionais liberais, estudantes e servidores públicos, estabelecendo relações com os mais diversos setores da sociedade como o poder público, universidades, empresas, grupos de usuários, hackers e ONGs. A ASL tem por principal objetivo tornar o software livre amplamente incluído na sociedade, propiciando espaço de discussão, apoio, fomento e organização de iniciativas nas mais diversas áreas relacionadas. - Site oficial da associação