인프런 커뮤니티 질문&답변

cyb9701님의 프로필 이미지
cyb9701

작성한 질문수

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

fromModel 생성자 만들어보기

factory를 Card에서 안 만들고 이런 방식은 어떤가요 ??

해결된 질문

작성

·

195

0

스크린샷 2024-02-29 12.15.34.png

RestaurantCard에서 factory를 생성하지 않고 parse된 item을 RestaurantCard 타입으로 넣어주는건 안 좋은 방법일까요 ??

답변 2

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

어떤 차이점을 말씀하시는지 잘 모르겠습니다.

어차피 model을 입력해서 사용 할거라면 왜 굳이 직접 변수들을 기본 값으로 받는 생성자를 만드냐는 말씀이신가요?

제 기준으로 기본 생성자는 실제 위젯이 필요한 값들이 뭔지 직관적으로 보여줘야 합니다.

그런데 매번 모델의 값들을 직접 매핑 해주면 귀찮고 실수가 생길 수 있으니 내부에서 매핑을 해둔겁니다.

안좋은 방법이냐고 질문을 주셨는데 보여주신 방법은 문제될 부분이 없습니다. (제가 팩토리 생성자를 구현한걸 그냥 기본 생성자로 변경한 것 아닌가요? 생성자의 정의는 코딩하는 사람 마음입니다)

감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다.
cyb9701님, 질문해주신 내용에 대한 답변입니다.

RestaurantCard에서 factory 생성자 대신에, 이미 parse된 RestaurantModel 객체를 직접 넘겨주는 것은 완벽히 유효한 방법입니다. 이 방식은 다음과 같은 경우에 유용할 수 있습니다:

  1. RestaurantModel 데이터를 다른 곳에서 미리 생성하고 파싱하고 그것을 여러 곳에서 재사용할 때 - 이렇게 하면 코드의 중복을 줄일 수 있고 데이터를 전처리하여 성능 개선이 가능할 수 있습니다.
  2. RestaurantModel 객체가 앱의 다른 부분에서 받아온 데이터로 이미 만들어진 경우 - 네트워크 요청 등으로 데이터를 받아와서 한 번에 여러 컴포넌트에서 사용해야 할 때 효율적입니다.
  3. 유닛 테스트를 작성할 때 - 미리 정의된 RestaurantModel 객체를 사용하여 RestaurantCard를 테스트할 수 있으며, 이는 테스트를 더 단순하고 예측 가능하게 만듭니다.

그러나, 이 방식에는 몇 가지 고려해야 할 점이 있습니다:

  • Factory 생성자를 사용하면 객체 생성 로직을 캡슐화하여 RestaurantCard의 생성을 해당 클래스 안에 있는 정적 메서드나 생성자를 통해 관리할 수 있으며, 이는 일관된 객체 생성을 보장하는 방식입니다.
  • 객체가 생성될 때 필요한 추가 처리나 검증이 있다면 factory 생성자 내에서 이를 처리하는 것이 좋습니다.

따라서, 어떠한 경우에 직접 RestaurantModel 객체를 넘겨주는 것이 적절한지는 앱의 전반적인 구조와 사용 사례에 따라 달라집니다. 기능상 요구사항과 유지 보수성, 코드의 일관성 등을 고려하여 결정하는 것이 중요합니다.

이미지 URL: https://cdn.inflearn.com/public/files/posts/f0c35f1e-902c-4ff9-b87c-0e842e5beb50/스크린샷2024-02-2912.15.34.png
원본 출처: 해당 정보는 제공되지 않았습니다.

cyb9701님의 프로필 이미지
cyb9701

작성한 질문수

질문하기