Pergunta

Se alguém usar a função autoloader (com spl_autoload_register), será necessário mais:

  • único:todas as classes necessárias serão carregadas pelo autoloader de qualquer maneira, incluindo banco de dados, logs, r&r, fronts etc.então é necessário "sempre ligado" etc.objeto não está claro para mim
  • fábrica:novamente, o autoloader carregará a classe necessária, então há um ponto em usar a classe de fábrica para instanciar as classes de trabalho que implementam a interface ou estender a classe abstrata
Foi útil?

Solução

Um singleton é usado para armazenar uma única instância de uma classe específica, de modo que sempre que a instância for recuperada, ela será sempre a mesma.Portanto, definir dados significará que os dados serão sempre os mesmos ao recuperá-los.

Isso é diferente do carregamento automático de uma classe, pois cada vez que você cria uma nova instância, você redefine o estado para o padrão da classe.Ainda assim, os Singletons devem ser usados ​​com moderação, pois são essencialmente variáveis ​​globais glorificadas.

Um padrão de fábrica deve ser utilizado para delegar a determinação e criação de objetos.É usado quando você não deseja especificar uma classe concreta, mas requer uma determinada subclasse sob um conjunto de condições.Você não pode passar parâmetros de construção para um autoloader, e alguma lógica complexa pode ser necessária para descobrir qual objeto deve ser retornado de uma fábrica, então, novamente, não se consegue a mesma coisa.

Um autoloader deve ser usado apenas para localizar um arquivo de classe e incluí-lo.Ele não deveria (e não pode) fazer nenhuma lógica, como instanciar um objeto ou tomar decisões sobre qual objeto carregar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top