해결된 질문
작성
·
83
0
자바스크립트 class문법에서 Factory Constructor를 언제 사용하나요? 일반 Constructor이 있는데 왜 사용하는지 모르겠어요. 예시가 있을까요?
답변 2
0
안녕하세요!
예를들면
Person이라는 객체가 존재하고 name, age 값이 있다고 하면
일반 constructor는 이 값들을 그대로 받습니다. 예) this.name=name, this.age=age
팩토리 컨스트럭터는 다른 형태로 값을 받도록 할 수 있습니다. 예) this.name = driver.name, this.age = Date(driver.createdAt)
이런식이죠.
감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다.
2145007님, 자바스크립트에서 Factory Constructor를 사용하는 사례를 이해하고자 하시는군요. 일반적인 생성자와 Factory Constructor의 차이점과 사용 사례를 설명해드리겠습니다.
일반 생성자는 인스턴스를 생성할 때 new 키워드를 통해 호출됩니다. 반면, Factory Constructor는 보통 복잡한 객체 생성 로직이나 여러 조건에 따라 다양한 객체를 반환할 때 유용합니다. Factory Constructor는 함수로 작성되며, 객체를 반환합니다. 따라서 new 키워드 없이도 호출될 수 있습니다.
경험해봤다면 알 수 있는 OOP 기본 팁들을 참고하시면 더욱 이해가 쉬워질 것입니다. 이 글에서는 프로그래밍 패턴과 싱글턴 패턴에 대해 코드팩토리님이 어떻게 설명하셨는지 확인하실 수 있습니다.
예시를 들어 설명드리겠습니다:
class Shape {
constructor(type) {
this.type = type;
}
static create(type) {
switch(type.toLowerCase()) {
case 'circle':
return new Circle();
case 'square':
return new Square();
default:
throw new Error('Unknown shape type');
}
}
info() {
console.log(`This is a ${this.type}.`);
}
}
class Circle extends Shape {
constructor() {
super('circle');
}
}
class Square extends Shape {
constructor() {
super('square');
}
}
const circle = Shape.create('circle');
const square = Shape.create('square');
circle.info(); // This is a circle.
square.info(); // This is a square.
위 예시에서 Shape 클래스는 정적 메서드 create
를 사용하여 특정 타입에 따라 적절한 Shape의 서브클래스 인스턴스를 생성합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.