Sobes.tech
Junior — Middle

Ako je realizovaná interakcia medzi rôznymi vrstvami a komponentmi v viacvrstvovej architektúre systému?

sobes.tech AI

Odpoveď od AI

V viacvrstvovej architektúre systému sa interakcia medzi vrstvami a komponentmi zvyčajne uskutočňuje prostredníctvom jasne definovaných rozhraní a protokolov. Napríklad na iOS sa často používa vzor MVC alebo MVVM, kde View komunikuje s ViewModel alebo Controllerom, ktorí majú následne prístup k dátovému modelu. Komunikácia môže prebiehať cez delegátov, oznámenia (NotificationCenter), closures alebo reaktívne knižnice (Combine, RxSwift).

Príklad interakcie cez delegáta:

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

class Model {
    weak var delegate: DataUpdateDelegate?
    func fetchData() {
        // Získanie dát
        let data = "Nové dáta"
        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é dáta: \(data)")
    }
}