1
resposta

Esclarecendo o obscuro

No presente curso, não ficou muito claro a relação do Designer Pattern Singleton com o que nos foi apresentado, receio que alguns possam ter ficado com dúvidas assim como outrora eu fiquei quando eu tive o primeiro contato com Singletons no curso de persistência interna.

Desmistificando: Singletons são uma prática de Designer Pattern que instruem quanto a criação de classes que precisam ter apenas uma instância. De modo quê, os valores dessa instância, sejam os mesmos em outras tentativas de instanciação. São muito úteis para controlar acesso, e não ocasionar uma fragmentação dos dadosç. Aplicações: São aplicaveis em situações que exigem que não haja cópias de uma mesma classe, e que os valores preenchidos em uma classe, sejam os mesmos pra todas as instanciações. Exemplos: Inicialização de bancos de dados, acesso à repositórios e etc.

Imagine que você criou um repositório, e que instanciou esse repositório em duas telas diferentes e não aplicou o Design Pattern SIngleton, para todos os efeitos, em ambas as telas existem duas instâncias diferente do mesmo repositório, de modo que, os valores presentes em uma, não existem na outra, apenas na instância da própria tela.

1 resposta

A prática de Singleton é um designer Parttern que garante que apenas uma instância de uma classe em particular, (Inicialização de um banco de dados SQLite e Repositorys); eles são simples de usar, de modo que os atributos e valores de uma classe sejam o mesmo para todas as instâncias, para evitar redundância de informações e classes.


class MySingleton z class MySingleton z{
    String myName;
    //Unique Instance of Singleton
    MySingleton _internal = Singleton._();
    
    //Factory Constructor
    factory MySingleton () => _internal;
    
    //Internal Constructor
    MySingleton._({required this.myName});
    
    //Atributes 
    final String name, 
}

Primeiro passo: Declaramos a classe que queremos transformar em Singleton, um bom exemplo são classes que representam bancos de dados ou repositories. Classes dessa categoria devem ter apenas uma instância, de modo que, evite redundância de código, acessos indevidos ou fragmentação de dados.

Segundo passo: Iniciar o Singleton com construtor privado, assim o construtor padrão não poderá ser instanciado.

Terceiro passo: Declarar uma instância do construtor privado.

Quarto passo: Declarar um construtor de fábrica que retorne essa única instância.

Obs: Os atributos devem ser iniciados normalmente, tanto no construtor privado, quanto no construtor de fábrica.