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)")
}
}