Ophoudt het gebruik van het Singleton-patroon de enkelvoudige verantwoordelijkheid?
sobes.tech AI
Antwoord van AI
Het gebruik van het Singleton-patroon op zich schendt niet noodzakelijkerwijs het Single Responsibility Principle (SRP). SRP stelt dat een klasse slechts één reden tot verandering moet hebben, dat wil zeggen dat deze verantwoordelijk moet zijn voor één specifieke taak.
Singleton is een patroon dat garandeert dat een klasse slechts één instantie heeft en een globaal toegangspunt tot die instantie biedt. Als de klasse die Singleton implementeert slechts één verantwoordelijkheid heeft, wordt SRP niet geschonden.
Echter, vaak wordt Singleton gebruikt voor klassen die beginnen met het uitvoeren van meerdere functies, wat leidt tot een schending van SRP. Het is daarom belangrijk om verantwoordelijkheden te scheiden en Singleton niet te overladen met extra taken.
Voorbeeld van een correcte Singleton:
class Logger {
static let shared = Logger()
private init() {}
func log(_ message: String) {
print(message)
}
}
Hier is Logger alleen verantwoordelijk voor logging, en wordt Singleton gebruikt voor gemakkelijke toegang tot de enige instantie.