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() // Хатогӣ!