Sobes.tech
Junior — Middle

Como é que a interação entre as diferentes camadas e componentes é realizada numa arquitetura de sistema multicamadas?

sobes.tech IA

Resposta da IA

Numa arquitetura de sistema de múltiplos componentes, a interação entre camadas e componentes geralmente ocorre através de interfaces e protocolos claramente definidos. Por exemplo, no iOS, costuma-se usar o padrão MVC ou MVVM, onde a View interage com o ViewModel ou Controller, que por sua vez acessam o modelo de dados. A comunicação pode ser feita através de delegados, notificações (NotificationCenter), closures ou bibliotecas reactivas (Combine, RxSwift).

Exemplo de interação via delegado:

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

class Model {
    weak var delegate: DataUpdateDelegate?
    func fetchData() {
        // Obtenção de dados
        let data = "Novos dados"
        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("Dados atualizados: \(data)")
    }
}