Middle
Miks on iga arhitektuurkiht rakenduses vajalik?
sobes.tech AI
Vastus AI-lt
Arhitektuuri kihid aitavad jagada vastutust, parandada rakenduse hooldatavust ja testitavust.
- Esitluskiht: Vastutab kasutajaliidese kuvamise ja sellega suhtlemise eest. Saab andmeid Domain kihilt ja muudab need kasutajale esitatavaks. Saadab kasutaja tegevused Domain kihile.
- Domain kiht: Sisaldab rakenduse äriloogikat. On sõltumatu UI ja infrastruktuuri detailidest. Sisaldab subjekte (Entities), kasutusjuhtumeid (Use Cases) ja hoidlaid (Repositories) liideste kujul.
- Entities: Esindavad põhitegevusobjekte.
- Use Cases (Interactors): Määratlevad suhtluse stsenaariumid rakendusega. Koordineerivad hoidlate ja subjektide tööd konkreetsete ülesannete täitmiseks.
- Repositories (Interfaces): Määratlevad andmete saamise ja salvestamise lepingud. Teostus toimub Data kihis.
- Data kiht: Vastutab andmete saamise ja salvestamise eest. Sisaldab hoidlate teostusi, andmeallikaid (Data Sources) ja andmemudeleid (Models/DTOs).
- Repository teostused: Teostavad Domain kihis määratletud liideseid.
- Data Sources: Pakuvad juurdepääsu erinevatele andmeallikatele (API, kohalik andmebaas, jagatud seaded jms).
- Models (DTOs): Esindavad andmeformaate, mida kasutatakse andmeallikatega suhtlemisel. Erinevad Entities-st Domain kihis.
Näide kihtide struktuurist:
lib/
├── main.dart
├── presentation/
│ ├── widgets/
│ ├── pages/
│ ├── blocs/ // või muu oleku haldamise süsteem
├── domain/
│ ├── entities/
│ ├── usecases/
│ ├── repositories/
├── data/
│ ├── repositories/
│ ├── datasources/
│ ├── models/
Sõltuvuste skeem:
Presentation Layer -> Domain Layer <- Data Layer. (Data ja Presentation sõltuvad Domain-ist, kuid Domain ei sõltu kellestki).