Sobes.tech
Junior — Middle

Hogyan valósul meg a különböző rétegek és komponensek közötti interakció egy többrétegű rendszerarchitektúrában?

sobes.tech MI

Válasz az MI-től

Többrétegű rendszerarchitektúrában az egymással való kommunikáció általában egyértelműen meghatározott interfészek és protokollok révén történik. Például az iOS-en gyakran alkalmazott minta az MVC vagy MVVM, ahol a Nézet (View) a ViewModel vagy a Controller-rel kommunikál, amelyek viszont hozzáférnek az adatmódellhez. A kommunikáció delegáltak, értesítések (NotificationCenter), zárványok (closures) vagy reaktív könyvtárak (Combine, RxSwift) segítségével valósulhat meg.

Delegátoros kommunikáció példája:

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

class Model {
    weak var delegate: DataUpdateDelegate?
    func fetchData() {
        // Adatok lekérése
        let data = "Új adatok"
        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("Frissített adatok: \(data)")
    }
}