Sobes.tech
Junior — Middle

Jak je zajištěna interakce mezi různými vrstvami a komponenty v vícevrstvé architektuře systému?

sobes.tech AI

Odpověď od AI

V architektuře systému s více komponentami obvykle komunikace mezi vrstvami a komponentami probíhá prostřednictvím jasně definovaných rozhraní a protokolů. Například na iOS se často používá vzor MVC nebo MVVM, kde View komunikuje s ViewModel nebo Controllerem, kteří dále přistupují k datovému modelu. Komunikace může být realizována přes delegáty, oznámení (NotificationCenter), closures nebo reaktivní knihovny (Combine, RxSwift).

Příklad komunikace přes delegáta:

protocol DataUpdateDelegate: AnyObject {
    func didUpdateData(_ data: String)
}

class Model {
    weak var delegate: DataUpdateDelegate?
    func fetchData() {
        // Získání dat
        let data = "Nová data"
        delegate?.didUpdateData(data)
    }
}

class ViewController: UIViewController, DataUpdateDelegate {
    let model = Model()
    override func viewDidLoad() {
        super.viewDidLoad()
        model.delegate = self
        model.fetchData()
    }
    func didUpdateData(_ data: String) {
        print("Aktualizovaná data: \(data)
}