Sobes.tech
Junior

Singleton чист?

sobes.tech AI

Ҷавоб аз AI

Singleton — намунаи тарроҳии эҷодӣ мебошад, ки кафолат медиҳад, ки дар класа танҳо як нусха вуҷуд дорад ва нуқтаи дастрасии глобалиро ба он таъмин мекунад.

Фоидаҳо:

  • Назорат бар нусхаи ягона.
  • Нуқтаи дастрасии глобалӣ.
  • Инициализатсияи суст (агар татбиқ карда шавад).

Норасоиҳо:

  • Қонуншикании принсипи масъулияти ягона.
  • Санҷишро душвор мекунад.
  • Мушкилот дар муҳитҳои бисёрсӯзишворӣ бе ҳамоҳангсозӣ метавонад ба вуҷуд ояд.

Тарзи одати татбиқ дар Swift:

class Singleton {  
    // Константаи статикӣ барои нигоҳ доштани нусхаи ягона
    static let shared = Singleton()  

    // Конструктори хусусӣ барои пешгирӣ аз сохтани нусхаҳои дигар
    private init() {  
        // Танзимоти иловагӣ, агар лозим бошад  
        print("Нусхаи Singleton сохта шуд")  
    }  

    // Мисоли усули singleton  
    func doSomething() {  
        print("Singleton дар ҳоли иҷро кардан")  
    }  
}  

Истифода:

// Дастрасӣ ба нусхаи ягона тавассути хусусияти статикӣ
let instance = Singleton.shared  
instance.doSomething()  
  
// кӯшиши сохтани нусхаи дигар хатогии компиляторро ба вуҷуд меорад
// let anotherInstance = Singleton() // Хатогӣ!