study/etc
정적 팩토리 메서드
836586697769
2024. 6. 27. 14:23
정적 팩토리 메서드(Static Factory Method)
간접적으로 생성자를 호출하여 객체를 생성하는 클래스 메서드
장점 1. 생성 목적을 이름으로 표현 가능
new라는 키워드를 통해 객체를 생성하는 생성자는 매개변수의 유형과 개수 등 내부 구조를 잘 알고 있어야 목적에 맞게 객체를 생성할 수 있음
→ 뚜렷한 이름과 목적을 가진 정적 팩토리 메서드를 호출한다면 객체 생성의 의미 파악이 쉬워짐
class Car {
private brand: string;
private constructor(brand: string) { // private 설정으로 외부 접근 불가
this.brand= brand;
}
// 정적 팩토리 메서드
public static brandOf(brand: string): Car {
return new Car(brand); // 메서드에서 생성자를 호출하여 객체를 반환
}
}
const car = Car.brandOf('Genesis');
console.log(car); // Car { brand: 'Genesis' }
장점 2. 객체 생성 로직의 캡슐화
생성자의 내부 구현을 드러낼 필요가 없음
class CarDto {
private brand: string;
private position: number;
public static from(car: Car): CarDto {
return new CarDto(car.getBrand(), car.getPosition());
}
}
const car = new Car(car.getBrand(), car.getPosition); // 생성자 사용
const carDto = CarDto.from(car); // 정적 팩토리 메서드 사용
reference: https://tecoble.techcourse.co.kr/post/2020-05-26-static-factory-method/