[node.js] 팩토리(Factory)

kmw0647·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개의 댓글