Trabalho Academico SIngleton

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