Junior — Middle
როგორ შეიძლება უზრუნველყოს კლასი ერთდროულად მუშაობა რამდენიმე ინტერფეისთან ან განსახორციელებასთან?
sobes.tech AI
პასუხი AI-სგან
iOS-да (Swift яки Objective-C) класс берничә протоколны (интерфейсны) гамәлгә ашыра ала, бу аңа төрле методлар җыелмасы белән эшләргә мөмкинлек бирә.
Swiftта мисал:
protocol Printable {
func printInfo()
}
protocol Identifiable {
var id: String { get }
}
class User: Printable, Identifiable {
var id: String
var name: String
init(id: String, name: String) {
self.id = id
self.name = name
}
func printInfo() {
print("Кулланучы: \(name), ID: \(id)")
}
}
let user = User(id: "123", name: "Alice")
user.printInfo()
Шулай итеп, User классы бер үк вакытта ике интерфейсны — Printable һәм Identifiable — гамәлгә ашыра. Бу объектны төрле контекстларда кулланырга мөмкинлек бирә, анда бу интерфейсларның берсе кирәк.
Әгәр төрле гамәлгә ашырулар белән эшләргә телисез икән, композиция яки делегирование кулланырга мөмкин.