3
respostas

Como eu posso substituir o Singleton?

Partindo desse principio, como voces recomendam a substituiçao do Singleton?

3 respostas

Oi Thales,

eu diria que nao pois vc vai precisar de "singletons" na sua aplicação. Em outras palavras, sempre vai ter classes onde apenas uma única instancia faz sentido (ex. pool de conexao).

O que muda é que a sua aplicação não precisa controlar a quantidade de instancia pois delega a criação de objetos para um container IoC/DI (CDI, Spring, EJB).

O container garante entao que existe apenas uma única instancia e não o seu código (por isso existe aquela anotação @Singleton ou @ApplicationScope).

Caso não esteja usando um container IoC/DI, ai sim vc precisa se preocupar com a implementação do Singleton.

Tudo bem?

abs

Opa Nico,

Obrigado pela resposta, estava pensando mais em relaçao ao Android, porque eu uso uma Application para deixa a instancia do banco de dados por exemplo. E eu nao consigo imaginar outra soluçao para isso.

Att, Thales

Oi Thales,

Pelo que sei o Dagger é um container do IoC para Android Java que oferece esses recursos, mas talvez nem sempre se justifica o seu uso:

https://google.github.io/dagger/

No Kotlin tbm tem uma biblioteca chamada Koin para ajudar:

https://medium.com/collabcode/inje%C3%A7%C3%A3o-de-depend%C3%AAncia-no-kotlin-com-koin-4d093f80cb63

Sem o Dagger/Koin vc precisa olhar na caixa de padrões de projeto e usa o "Singleton Pattern".

ok?

abs