Pattern Project Singleton

336 palavras 2 páginas
Modelo de desenvolvimento (pattern Project) 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.
Muitos projetos necessitam que algumas classes tenham apenas uma instância. Por exemplo, em uma aplicação que precisa de uma infraestrutura 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.

Diagrama UML de determinada classe:

Onde utilizá-lo
Quando você necessita de somente uma instância da classe, por exemplo, a conexão com banco de dados, vamos supor que você terá que chamar diversas vezes a conexão com o banco de dados em um código na mesma execução, se você instanciar toda vez a classe de banco, haverá grande perda de desempenho, assim usando o padrão singleton, é garantida que nesta execução será instânciada a classe somente uma vez. Lembrando que este pattern é considerado por muitos desenvolvedores um anti-pattern, então, cuidado onde for utilizá-lo.

Exemplo do pattern singleton na linguagem PHP
<?php
class Singleton
{
private static $_instance; // Evita que a classe seja instanciada publicamente private function __construct() { } // Evita que a classe seja clonada private function __clone() { } public static function getInstance() { if (!isset(self::$_instance)) { // Testa se há instância definifa na propriedade, caso sim, a classe não será instanciada novamente. self::$_instance = new self; // o new self cria uma instância da própria classe à própria classe. } return self::$_instance; }
}

Vantagens de se utilizar este padrão

Permite o controle sobre como e quando os cliente acessam a instância.
Várias classes singleton podem

Relacionados

  • Design patterns
    3726 palavras | 15 páginas
  • Java ee
    92630 palavras | 371 páginas
  • LocadoraBD
    2068 palavras | 9 páginas
  • C++ design patterns
    21324 palavras | 86 páginas
  • Desenvolvimento Web Avancado
    20303 palavras | 82 páginas
  • Refactoring software using design patterns
    10268 palavras | 42 páginas
  • None
    14927 palavras | 60 páginas
  • ATPS Novas Tecnologias 5 TGTI vr3
    7570 palavras | 31 páginas
  • Programação
    28326 palavras | 114 páginas
  • Portifolio Individual 5 Semestre ADS 2015
    8137 palavras | 33 páginas