
140
자바스크립트 + 리액트 디자인 패턴
로 이동되었고, 객체 데이터가 분리되었기 때문에 인스턴스화를 위한 팩토리를 사용할 수 있
게 되었습니다.
7.16.5
기본 팩토리
이제 아주 기본적인 팩토리를 정의해 봅시다. 이 팩토리는 시스템 내부에서 특정 제목의 책
이 이미 생성되었는지 확인합니다. 생성된 책이 있다면 반환하고, 없다면 새로운 책을 생성
하여 나중에 다시 접근할 수 있도록 저장합니다. 이 방법은 고유한 내부 데이터에 대해 하나
의 복사본만 생성되도록 보장합니다.
// Book 팩토리의 싱글톤
const existingBooks = {};
class BookFactory {
createBook({ title, author, genre, pageCount, publisherID, ISBN }) {
// 주어진 메타데이터 조합과 일치하는 책이 이미 존재하는지 확인
// 그리고 !! 연산자를 사용해 boolean 형태로 변환
const existingBook = existingBooks[ISBN];
if (!!existingBook) {
return existingBook;
} else {
// 존재하지 않는 경우, 새로운 책 인스턴스 생성 후 저장
const book = new Book({ title, author, genre, pageCount, publisherID, ...