[node.js] 팩토리(Factory)

초보개발자·2021년 2월 12일
0

node.js

목록 보기
3/3

1. 팩토리 패턴의 장점

  • 객체의 생성과 구현을 분리할 수 있음

  • 더 많은 유연성과 제어력을 제공

  • 객체의 생성자를 노출시키지 않고 객체를 확장하거나 수정하지 못하도록 함

  • exmaple

const createImage = (value) => {
    if (value.includes('.jpg')) {
      return new JpgImage(value)
    } else if (value.includes('.gif')) {
      return new GifImage(value)
    } else if (value.includes('.png')) {
      return new PngImage(value)
    } else {
      throw new Error('일치하는 확장자가 없습니다.')
    }
}

2. 강제 캡슐화 메커니즘

  • JavaScript에서는 private 변수가 없음

  • 그러므로 클로저를 통해 캡슐화

  • exmaple

const createPerson = (name) => {
  const privateProperties = {}
  const person = {
    setName: (name) => {
      if (!name) {
        throw new Error('이름이 필요합니다')
      }
      privateProperties.name = name
    },
    getName: () => {
      return privateProperties.name
    },
  }
  person.setName(name)
  return person
}

팩토리에 의해 반환되는 공용 인터페이스인 person 객체는 외부에서 접근 불가하고, person 객체가 제공하는 privateProperties를 통해서만 조작할 수 있음

내용 출처

Node.js 디자인패턴

profile
주니어 개발자입니다!

0개의 댓글