Singleton – Desgin Patterns para PHP (padrões de projetos) – Solteirao


O padrão singleton, como o nome já diz, trabalha com uma instância única do objeto, ou seja, vc cria apenas um objeto, e quando tenta criar outro, ele te retorna o que já esta criado !

A pergunta, “Por que e pra que isso?”

A resposta: – Simples, existem objetos que não precisam mais do que 1 instância, por exemplo, uma objeto de conexão SQL, imagina que todas as vezes que vc criar um ele conecta … um outro uso dele são para logs … e mais um é para fábrica e esse eu uso e aconselho. Esse padrão serve para aproveitar melhor a memória do servidor, evitando tb um trabalho mais árduo do “Garbage Colector”(depois eu explico o que é)… então agora chega de blábláblá e vamos a prática


public static $instance; //Aqui fica a instância única do objeto

 private  function __construct(){
/**
 * Notem que esta private para que apenas o metodo singleton trabalhe com o construct
 */

 }
 static public function singleton()
 {
  
  if (!isset(self::$instance)) { //Se não tem nenhuma instância criada
   $c = __CLASS__;
   self::$instance = new $c; // esse método que chama o construct
  }
  
  return self::$instance; //Caso já tenha ele retorna a instância
 }

Tentei ser bem explicativo, mas se tiver confuso é só perguntar

Anúncios

2 comentários sobre “Singleton – Desgin Patterns para PHP (padrões de projetos) – Solteirao

  1. Nao entendi, para iniciantes ou para avançados ? Ou acho que isso é para quem estar querendo levar o PHP mais a fundo, porém, não classificaria como avançado ainda… Mas valew pelo comentário

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s