일반적으로는 인스턴스를 만들기 위해 new를 이용하지만 정적 팩토리 메소드는 return에 new한 객체를 반환해주는 형태이다
public class MacBook {
String color;
String cpu;
String ram;
private MacBook(String color, String cpu, string ram) {
this.color = color;
this.cpu = cpu;
this.ram = ram;
}
public static MacBook of(String color, String cpu, string ram) {
return Constructor(color, cpu, ram);
}
}
그렇다면 왜 생성자 대신 Static Factory Method를 사용할까?
1. 생성자 별로 메소드 명을 지정 할 수 있다.
public class MacBook {
String color;
String cpu;
String ram;
private MacBook(String color, String cpu, string ram) {
this.color = color;
this.cpu = cpu;
this.ram = ram;
}
public static MacBook StandardMacBook(String color) {
return MacBook(color, "M3", "8Gb");
}
public static MacBook CtoMacBook(String color, String cpu, String ram) {
return MacBook(color, cpu, ram);
}
}
위와 같이 기본 맥북을 만드는 것을 생성자가 아니라 Static Factory Method를 사용하면 메소드 명에서 그 의도를 명확히 파악할 수 있다.
'computer science' 카테고리의 다른 글
Domain service (0) | 2024.04.30 |
---|