Singleton nümunəsinin istifadəsi tək məsuliyyət prinsipini pozurmu?
sobes.tech Süni İntellekt
AI-dan cavab
Singleton nümunə modelindən istifadə etmək, öz-özlüyündə Tək Məsuliyyət Prinsipini (Single Responsibility Principle, SRP) pozmur. SRP deyir ki, bir sinif dəyişiklik üçün yalnız bir səbəbə malik olmalıdır, yəni müəyyən bir vəzifə üçün cavabdeh olmalıdır.
Singleton, bir sinifin yalnız bir nümunəsinin olmasını təmin edən və ona qlobal giriş nöqtəsi təmin edən bir nümunədir. Əgər Singleton-u həyata keçirən sinif yalnız bir məsuliyyətə cavabdehdirsə, SRP pozulmur.
Lakin, tez-tez Singleton, çox funksiyaları yerinə yetirməyə başlayan siniflər üçün istifadə olunur və bu, SRP-nin pozulmasına səbəb olur. Buna görə, məsuliyyətləri bölmək və Singleton-u əlavə vəzifələrlə yükləməmək vacibdir.
Düzgün Singleton nümunəsi:
class Logger {
static let shared = Logger()
private init() {}
func log(_ message: String) {
print(message)
}
}
Burada Logger yalnız qeydiyyat üçün cavabdehdir və Singleton, tək nümunəyə asanlıqla giriş üçün istifadə olunur.