🐦 Flutter

factory 생성자에 대한 고찰2 - 일반 생성자와 다른 차이점

ji-hyun 2023. 9. 23. 15:26

지난 시간에는 json 파싱할 때 factory 생성자를 왜 쓸까? 에 대한 포스팅을 했었다.

2023.09.21 - [🐦 Flutter] - factory 생성자에 대한 고찰1 - Json 파싱

 

 

근데 지난 포스팅에도 봤다시피 factory 생성자는 일반 생성자와는 다른 모양이었다.

그러니까

 

 

일반 생성자 는 객체를 다음과 같이 초기화할 수 있다.

 

Album({this.userId, this.id, this.title});

 

 

 

반면 factory 생성자 는 다음과 같이 초기화한다.

 

factory Album.fromJson(Map<String, dynamic> json) {
    return Album(
      userId: json['userId'],
      id: json['id'],
      title: json['title'],
    );
  }

 

factory 생성자는 일반 생성자와는 다르게 return 키워드 가 존재한다.

 

 

 

 

factory Album(Map<String, dynamic> json) {
    return Album(
      userId: json['userId'],
      id: json['id'],
      title: json['title'],
    );
  }

 

이렇게 써도 return 키워드가 존재한다.

즉, factory 키워드는 일반 생성자와는 다르게 return 키워드가 있어 좀 더 약한 제약조건을 줄 수 있다.

 

return 키워드가 있음으로써, 우리는 factory 생성자를 사용하여 싱글턴 패턴을 구현할 수도 있고 혹은 json 파싱할 때 더 원하는 객체의 모양으로 초기화할 수가 있는 것이다.

↓ 이 게시물에서 좀 더 자세한 공식문서 설명글을 볼 수 있다!

2023.09.21 - [🐦 Flutter] - factory 생성자에 대한 고찰1 - Json 파싱

 

 

 

다음 포스팅에는 factory 의 싱글턴 패턴 사용 예제와 같이 알아보겠다.