728x90
Business Logic - Service
- protocol 기반
- RealService와 StubService로 나뉨
- 실사용과 테스트 코드용
- init시 appState와 repository를 받음
- appState를 service와 연결하지만 쓰이지 않는 경우도 있음(이전에 사용하다가 바뀌는 과정에서 제거가 누락된 듯)
- container를 설정할 때 init(DIContainer.Services)
- LodableSubject를 포함해 작업에 필요한 매개변수를 받고, repository를 통해 작업
- 작업의 결과를 LodableSubject에 매핑
- 작업 중에는 isLoading으로 상태 변환해 ui에서 로딩 중임을 보여줌
- 코어 데이터를 사용해서 데이터를 저장해 두고 불러옴
- 만약 코어 데이터에 데이터가 없다면 코어 데이터에 저장
- 만약 코어 데이터에 데이터가 있다면 코어 데이터에서 로드
- 데이터는 변화가 없다고 가정하고, 한 번 저장한 데이터는 무결하다가 전제인 듯
- 데이터를 불러오거나 저장하는 로직만 있고, 작업이 어떤 방식으로 이루어지는지는 다루지 않음
- 작업 방법은 repository가 정함
728x90
'Swift' 카테고리의 다른 글
SwiftUI + Combine MVVM 아키텍쳐 분석 - 7 (0) | 2024.11.11 |
---|---|
SwiftUI + Combine MVVM 아키텍쳐 분석 - 6 (0) | 2024.11.11 |
SwiftUI + Combine MVVM 아키텍쳐 분석 - 4 (0) | 2024.11.11 |
SwiftUI + Combine MVVM 아키텍쳐 분석 - 3 (0) | 2024.11.11 |
SwiftUI + Combine MVVM 아키텍쳐 분석 - 2 (0) | 2024.11.08 |