Sobes.tech
Junior — Middle

O uso do padrão Singleton viola o princípio da responsabilidade única?

sobes.tech IA

Resposta da IA

A utilização do padrão Singleton por si só não viola necessariamente o princípio da responsabilidade única (Single Responsibility Principle, SRP). O SRP afirma que uma classe deve ter uma única razão para mudar, ou seja, ser responsável por uma tarefa específica.

Singleton é um padrão que garante que uma classe tenha apenas uma instância e fornece um ponto de acesso global a ela. Se a classe que implementa Singleton responde apenas por uma responsabilidade, então o SRP não é violado.

No entanto, muitas vezes o Singleton é usado para classes que começam a desempenhar múltiplas funções, o que leva à violação do SRP. Portanto, é importante dividir responsabilidades e não sobrecarregar o Singleton com obrigações adicionais.

Exemplo de um Singleton correto:

class Logger {
    static let shared = Logger()
    private init() {}

    func log(_ message: String) {
        print(message)
    }
}

Aqui, Logger é responsável apenas pelo registro, e o Singleton é usado para facilitar o acesso à única instância.