팩토리 메서드 패턴
팩토리 메서드 패턴은 객체 생성을 추상화하고 캡슐화하는 디자인 패턴이다.
객체를 직접 생성하는 대신 객체내에 존재하는 팩토리 메서드를 통해 객체를 요청하고 제공받는다.
클라이언트가 "new" 키워드를 통해 객체를 생성하는게 아닌 객체 생성을 도맡아하는 메서드를 만들어
객체 생성을 책임지게 만든다.
정적 팩토리 메서드 패턴(Static Factory Method Pattern)
위 팩토리 메서드 패턴을 변형시킨 패턴으로 써 클래스 내에 생성자를 호출하여 객체를 생성하는
Static Method 를 만들어놓고 객체 생성을 유도하는 패턴이다.
// People 객체
public class People {
private String name;
private Integer number;
// 생성자를 private 로 선언하여 외부에서 생성자 호출 차단
private People(String name, Integer number){
this.name = name;
this.number = number;
}
// 정적 팩토리 메서드
public static People setNameNumber(String name, Integer number){
return new People(name, number);
}
}
위 People 객체를 보면 name 과 number 라는 멤버를 가지고 있고 생성자는 private 를 사용하여
외부에서 생성자를 호출할 수 없도록 설정했다.
이럴때 정적 팩토리 메서드에 생성자를 호출하여 객체를 생성하도록 설정하면
호출할 수 있다.
People p = People.setNameNumber("obo", 1234);