Dart Factory 패턴?!?

서정한·2023년 6월 24일

Intro

  • 강의를 듣다가 Shared_Preference를 사용하는 실습이 있었다. 여기에 데이터를 저장하는데 Json으로 저장하고 불러오는데 코드를보다가 이해가 되지않는 부분이 발견되었다...!
  factory Book.fromJson(json) {
    return Book(
      id: json['id'],
      title: json['title'],
      authors: json['authors'],
      publishedDate: json['publishedDate'],
      thumbnail: json['thumbnail'],
      previewLink: json['previewLink'],
    );
  }
  • 위 코드에서 factory가 있고, Book(클래스명).fromJson 이런식으로 되어있는데, 이게 뭔가검색해보니 factory method를 사용하는 방법이라고 한다.

factory란?

factory는 새로운 인스턴스를 생성하지 않고 1개의 인스턴스만을 사용하는 것이다. 만약 인스턴스가 없다면 생성해주고 있다면 해당인스턴스를 반환하여 사용하도록 한다. 이것은 디자인패턴중 싱글톤 패턴이다. 자세한것은 여기!

싱글톤?

  • 유니티 개발할때 싱글톤을 무지하게 많이 사용했었다. 하나의 객체를 가져와서 데이터를 전달하고 사용할 일이 많았기 때문이다. 위의 설명으로 내가 이해한 factory는 해당 클래스 혹은 메서드를 싱글톤으로 사용할때 쓴다는 것으로 이해했다.

결론

  • 위의 코드를 이해해보면 결국 우리가 Book이라는 클래스에 fromJson이라는 팩토리 메서드를 만들어 사용한 것이다.
  • 팩토리 메서드이므로 하나의 인스턴스만을 사용하므로 여러 인스턴스에 접근해 원하지않는 결과를 방지해주기위해 쓴 것이다.
profile
잘부탁드립니다!

0개의 댓글