Data Katmanı: API'lerle etkileşimden sorumlu olan katmandır.
Domain Katmanı: Data katmanından gelen verileri dönüştürmekle görevli olan katmandır.
Business Logic Katmanı: Uygulama state'ini yöneten katmandır.
Presentation Katmanı: UI bileşenlerini state'e göre işleyen katmandır.
Domain katmanı ham verileri
business logic katmanı tarafından tüketilen
domain'e (etki alanına) özgü modellere dönüştürür.
Business Logic katmanı
repository'nin sağladığı domain modellerinin değişmez durumunu (immutable state) korur ve kullanıcı arayüzünden gelen girdilere tepki verir ve state'e göre değişiklik yapılması gerektiğinde depo ile iletişim kurar.
Her katman doğrudan ilişkili olmayan katmanlar arasındaki etkileşimleri önleyen bir ilişki zincirine sahip olmalıdır.
Örneğin presentation katmanı, data katmanındaki apileri doğrudan çağırmamalı veya bunlarla hiçbir şekilde etkileşimde bulunmamalıdır.
Yeniden kullanılabilirliği göz önünde bulundurarak oluşturun:
Bu tavsiye özellikle data katmanı içindir. Data katmanındaki bileşenler, belirli bir ürüne uygulamaya bağlı olmadıkları ve daha geniş topluluğa fayda sağlayabilecekleri için genellikle açık kaynak için mükemmel adaylardır.
Verileri ve domain katmanlarını paketler halinde izole etmek onları diğer uygulamalara aktarmaya veya istenirse pub.dev de yayınlamaya olanak tanır.
Belirli bir model beklemek yerine kodlanmış JSON stringlerini depolamak için genel bir API oluşturabilir böylece bu API diğer domain alanlarında yerel bir depolama API'si olarak kullanılabilir.
Not: Bu yazı very-good-flutter-architecture yazısının özeti niteliğini taşır.
Kaynak: