Java Pattern Class가 생성자보다는 공장 방법을 사용하는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/855518

  •  21-08-2019
  •  | 
  •  

문제

이것에 대한 좋은 토론이 있습니다 일반적인 경우.

그러나 나는 왜 그런지 구체적으로 궁금했다 Pattern 클래스를 사용합니다 compile 생성자가 아닌 객체를 생성하는 정적 방법?

생성자를 사용하는 것이 더 직관적 인 것 같습니다.

도움이 되었습니까?

해결책

패턴 클래스는 JDK의 많은 것보다 새롭습니다. 따라서 나는 그들이 공공 생성자의 오래된 접근 방식보다는 공장 방법을 사용하는보다 현대적인 접근 방식을 채택했다고 생각합니다. 공장 방법을 기존 클래스로 개조 할 수는 없습니다.

일반적으로 말하면, 공장 방법을 통해 생성자를 사용해야 할 이유가 많지 않으므로 그게 전부라고 생각합니다. 공장 방법을 사용하면 객체 생성을 추상화 할 수 있습니다. 이는 매우 유용 할 수 있습니다.

다른 팁

왜 두 사람이 될까요? Pattern 동일한 Regex의 인스턴스? 정적 생성 방법을 사용하면 구현이 잠재적으로 캐시 할 수 있습니다 PatternS는 때때로 동일한 regex가 여러 번 요청되면 동일한 개체를 반환합니다. 컴파일 PatternS는 비쌀 수 있습니다. 또한 추가 인 경우 compile 방법이 필요해졌으며 (다른 구문) 혼란스럽게 과부하 된 생성자 세트 대신 다른 이름을 부여 할 수 있습니다.

정적 공장 패턴은 생성자에 영향을 줄 수있는 방식으로 기본 구현이 변경 될 가능성이 높을 때 사용됩니다. 요컨대, 공장은 구조 측면의 이진 및 소스 호환성에 의해 묶이지 않고 라이브러리 관리자에게 상당한 유연성을 허용합니다.

보다 http://en.wikipedia.org/wiki/factory_method_pattern 자세한 내용 - 특히 '기타 이점 및 변형'섹션.

공장 방법을 사용합니다 Pattern 또한 결국 타사 플러그인 Regex 구현을 사용할 수 있습니다. 불행히도 Sun은 공장 방법 (플러그인 능력, 캐싱)을 사용할 때 얻을 수있는 기능을 구현하지 않았습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top