저는 Guice를 조사 중이며 최근에 해당 문서를 읽었습니다.초록 공장이나 공장 방법처럼 보이지 않으므로이 공장에 대해 혼란스러워합니다.
섹션 읽기 나는 공장 부품을 이해하지 못합니다. 왜 그런 식으로 이름을 붙입니까? 나에게 그 팩토리는 getInstance()를 호출 한 후 리턴 할 클래스를 구현하는 래퍼 일 뿐이다.
public class CreditCardProcessorFactory {
private static CreditCardProcessor instance;
public static void setInstance(CreditCardProcessor creditCardProcessor) {
instance = creditCardProcessor;
}
public static CreditCardProcessor getInstance() {
if (instance == null) {
throw new IllegalStateException("CreditCardProcessorFactory not initialized. "
+ "Did you forget to call CreditCardProcessor.setInstance() ?");
}
return instance;
}
}
추상 팩토리 또는 팩토리 메서드가 아닌 경우 (심지어 적어도 원래 GoF에서 정의한대로) 팩토리를 호출하는 이유는 무엇입니까? 또는 나는 무엇인가 놓치고 있냐?
감사합니다.
EDIT : 누군가가 더 나은 제목을 제시하면, 나는 그것을 바꿔 드리겠습니다.
음, Guice의 팩토리가 DocumentBuilderFactory와 어떻게 일관되는지 보지 못합니다. 예를 들어, 팩토리 메소드를 가지고 있지만 Guice의 케이스처럼 setInstance는 없다. DocumentBuilderFactory는 내가 생각하는 GoF의 패턴을보다 잘 준수하는 것으로 보입니다. 하지만 내 게시물이 내 질문에 가장 잘 맞다고 생각합니다. – Pin
글쎄, 나는 Guice와 함께 일하는 누군가가 Guice가 공장이라고 부를 수있는 옛날로 돌아가서 생각하는 것을 볼 수있다. 제시, 어쨌든 싱글 톤 예제를 선택하는 이유는 무엇입니까? 그것은 단지 모든 사람을 혼란스럽게합니다. – nes1983
나는 문서를 고쳤다. –