Upload
bruno-penafort
View
213
Download
0
Embed Size (px)
DESCRIPTION
Trabalho acadêmico apresentado para a disciplina de Análise de Projetos II
Citation preview
Position Paper
UNIVERSIDADE DA AMAZNIA
Bruno Penafort da Silva OliveiraPADRES DE PROJETO - SINGLETONBELM
2015UNIVERSIDADE DA AMAZNIA
Bruno Penafort da Silva OliveiraPADRES DE PROJETO - SINGLETONTrabalho Acadmico apresentado Universidade da Amaznia como requisito avaliativo parcial da Disciplina Anlise e Projetos II do Curso Anlise e Desenvolvimento de Sistemas.
Prof. AdoniasBELM
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.
MOTIVAOUm 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");
}
}
CONCLUSOO Singleton um padro de projeto que pode ser utilizado facilmente por muitas linguagens de programao, o que torna o cdigo da aplicao mais fcil de ser acessado por outras classes e deixa a aplicao mais leve, no deixando o cdigo muito poludo, o que pode causar perda de desempenho. A for