Sobes.tech
Junior — Middle

Come avviene l'interazione tra i diversi strati e componenti in un'architettura di sistema multilivello?

sobes.tech AI

Risposta dell'AI

In un'architettura di sistema a più componenti, l'interazione tra strati e componenti avviene generalmente attraverso interfacce e protocolli chiaramente definiti. Ad esempio, su iOS si utilizza spesso il pattern MVC o MVVM, dove la View interagisce con il ViewModel o Controller, che a loro volta accedono al modello di dati. La comunicazione può avvenire tramite delegati, notifiche (NotificationCenter), closures o librerie reattive (Combine, RxSwift).

Esempio di interazione tramite delegato:

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

class Model {
    weak var delegate: DataUpdateDelegate?
    func fetchData() {
        // Recupero dati
        let data = "Nuovi dati"
        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("Dati aggiornati: \(data)")
    }
}