Escolar Documentos
Profissional Documentos
Cultura Documentos
Trabalho Academico SIngleton
Trabalho Academico SIngleton
BELM
2015
UNIVERSIDADE DA AMAZNIA
BELM
2015
INTRODUO
Os Padres de projeto so estruturas no projeto de software orientados a
objetos, que se repetem freqentemente. Surgiu para auxiliar desenvolvedores a
criar uma regra que fosse comum a todos, um padro a ser utilizado no
desenvolvimento de softwares, a idia principal foi de que pudesse ser documentado
os problemas mais recorrentes que aconteciam com os softwares e mostram de uma
forma simples e comprovada de que os problemas tem soluo. Os padres ajudam
a diminuir a complexidade do processo de desenvolvimento do software.
MOTIVAO
Um dos motivos para se usar o padro Singleton de que ele pode ser criado
para gerenciar a aplicao atravs de uma instncia, onde ele ser acessado na
classe responsvel e por todas as classes. O mtodo s ser chamado quando for
necessrio, fazendo com que no fique repetido em vrias classes, sendo inclusive
muito mais de fcil de gerenciar a criao e utilizao da instncia.
APLICABILIDADE
Use o padro Singleton quando:
For preciso haver apenas uma instncia de uma classe, e essa instncia
tiver quedar acesso aos clientes atravs de um ponto bem conhecido.
A nica instncia tiver de ser extensvel atravs de subclasses,
possibilitando aos clientes usar uma instncia estendida sem alterar o seu cdigo.
ESTRUTURA
APLICAO/IMPLEMENTAO
Esse um exemplo de Sinlgeton implementado em Java, ele faz a exibio
de uma mensagem na tela. O que pode ser facilmente acessado por outras classes,
atravs dessa implementao.
// Este singleton um dispositivo que imprime mensagens para a tela.
public class TelaSingleton {
//Varivel instancia unica, que esttica, de forma a garantir a criao
//de outras instancias
protected static TelaSingleton instanciaunica = null;
protected int id = 0;
//Marcador para indicar no teste que as instncias so iguais
public String marc = null;
//Construtor protegido, para impedir que a instancia seja criada de outra
//forma que no via mtodo Instance()
protected TelaSingleton() {
id++;
}
//Mtodo Instance um factory method que retorna a instncia nica
//criada
public static TelaSingleton Instancia() {
if(instanciaunica == null) {
//Se instanciaunica no tiver sido criada, cri-la.
instanciaunica = new TelaSingleton();
//Ajustar valor do marcador
instanciaunica.marc = INSTANCIA NICA;
}
//Seno, a retorna, porque j foi criada
return instanciaunica;
}
//Mtodo para impresso da mensagem na tela.
public void imprimir(String mensagem) {
System.out.println(mensagem);
}
}
class Main {
public static void main (String[] args) {
//Crio o dispositivo para impresso na tela e imprimo mensagem
TelaSingleton T1 = TelaSingleton.Instancia();
T1.imprimir("T1.marc");
//Declaro novo dispositivo e imprimo. A instancia retornada a mesma:
//T1=T2, o que verificado pelas mensagens idnticas que so impressas
// via atributo marc do singleton.
TelaSingleton T2 = TelaSingleton.Instancia();
T2.imprimir("T2.marc");
}
}
CONCLUSO