Sobes.tech
Назад к вопросам
Junior — Middle
71

Каким образом можно обеспечить одновременную работу класса с несколькими интерфейсами или реализациями?

Ответ от нейросети

sobes.tech 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("User: \(name), ID: \(id)")
    }
}

let user = User(id: "123", name: "Alice")
user.printInfo()

Таким образом, класс User одновременно реализует два интерфейса — Printable и Identifiable. Это позволяет использовать объект в разных контекстах, где требуется один из этих интерфейсов.

Если нужно работать с разными реализациями, можно использовать композицию или делегирование, чтобы переключаться между ними.