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.