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