inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Flutter 고급 - 현업 수준의 아키텍처

23 의존성 주입 (DI)

view model 은 팩토리로 생성하는 이유

266

Seung Min Liang

작성한 질문수 19

0

23강의 5:10에서 usecase,repository 는 싱글톤으로 만들고, viewmodel은 팩토리로 만드는 것이 일반적이라고 하셨습니다.

싱글톤으로 만드는 것은 이해했는데, 팩토리를 사용하는 이유는 무엇일까요?

 

viewModel 안의 state 의 내용이 UI 의 데이터로 채워지고, viewModel 안의 state 는 가변적이니 싱글턴으로 하는게 맞지 않을까라는 생각이 갑자기 들어서요. viewModel을 다시 만드는 것이 어떤 경우가 있는지 궁금합니다.

 

강의항상 재밌게 듣고 있습니다. 감사합니다.

flutter mvvm state-management 클린-아키텍처

답변 1

0

오준석

ViewModel 은 화면에 표시할 데이터를 제공하는 데이터 Holder 역할을 하게 됩니다.

화면을 위한 것이므로 화면과 같은 생명주기를 가져야만 버그 발생 가능성을 줄일수가 있습니다.

 

만약 List, Detail 두 개 화면이 있을 때 DetailViewModel 이 싱글턴으로 유지되면

새로운 항목 클릭해서 Detail 화면으로 왔을 때 기존 화면의 내용이 잠깐 남아 있다가 교체가 될 수도 있고

기존 화면의 내용 일부가 남아 있을 수도 있는 등의 버그 발생 가능성이 있고, 굉장히 귀찮아 집니다.

 

그래서 화면과 ViewModel 의 생명주기를 같게 하는 것이 중요합니다.

1

Seung Min Liang

이해가 됐습니다! 감사합니다.

Node 관련 질문입니다

0

15

2

구글 소셜 로그인 후 로그인 시 구글에러

0

21

1

실습중(개인 비용 관리 앱) 문의드려요

0

34

1

6강에 비디오가 이상해요

0

18

1

Isar 마지막 업데이트는 2년전입니다.

0

26

0

수강연장부탁드려도될까요..

0

37

2

Chat GPT API 설정하기 프롬프트

0

44

2

FlutterSecureStorage 질문

0

25

0

구글 플레이 등록 시, Privact Policy URL 등록 팁

0

36

1

현재강의 완성된코드가있을까요?

0

61

1

플러터 환경분리 (production, qa 등) 질문

0

73

2

dataclass 오류

0

113

2

수업 노트에 있는 json 파일에 ingredient 관련 내용이 없습니다.

0

86

2

개발자 도구

0

63

1

figma

0

83

1

개발자도구

0

72

3

ui 테스트 코드 링크가 없습니ㅏㄷ.

0

83

1

jdk 설정 및 오류

0

376

3

텍스트 전체입력 후 검색 결과 조회

1

129

2

라이브 템플릿 링크 어디서 확인하나요?

0

152

2

ingredient view model의 _loadRecipe

0

110

1

BigButton 만들때.

0

131

1

31강 stream 활용시 어떤장점이 있나요?

0

223

2

domain 에 data_source 를 만드는 이유.

0

366

3