디자인 패턴을 연구 중이며 매우 혼란스러운 것을 발견했습니다. 빌더 패턴은 정확히 무엇입니까? 내가 찾은 두 가지 절대적으로 다른 목적이 있습니다.두 개의 빌더 패턴이 있습니까?
첫 번째는 Erich Gamma가 자신의 저서 "디자인 패턴 - 재사용 가능한 객체 지향 소프트웨어의 요소 (내 개인 성서)"에서 설명하는 것입니다. Director가 빌드 된 객체의 구조를 알고 복잡한 하위 객체를 작성하는 방법을 알고있는 빌더를 사용하는 복잡한 객체를 작성하는 방법입니다. 콘크리트 빌딩 블록 구현과 구조를 분리하는 좋은 방법.
Joshua Bloch의 Effective Java를 읽기 시작할 때까지이 설명에 만족했습니다. 그는 빌더를 다양한 선택적 매개 변수에 대처할 수있는 패턴으로 설명하고 예를 들어 텔레스코픽 생성자의 문제를 매우 효과적으로 해결합니다.
위키 피 디아는 망원경 생성자를 처리하는 방법으로 조슈아 블로흐 (Joshua Bloch)와 같은 빌더 패턴을 이해합니다. http://en.wikipedia.org/wiki/Builder_pattern. 이것은 에릭의 설명과 절대적으로 아무런 관련이 없습니다.
무엇이 잘못 되었습니까?
Erich Gamma에 설명 된 작성기가 공장이지만, 확실하지는 않지만 아직 그 책을 읽지 않은 것 같습니다. –
다른 패턴이 있으며 Erich가 차이점을 설명하는 방법입니다. "Abstract Factory (87)는 복잡한 객체를 구성 할 수 있다는 점에서 Builder와 유사합니다. 가장 큰 차이점은 인데, Builder 패턴은 복잡한 객체 단계를 구성하는 데 중점을 둡니다. 요약 팩토리는 제품 객체 패밀리 (단순 또는 복합) 에 중점을 둡니다. 빌더는 제품을 최종 단계로 반환하지만 추상 팩토리 패턴과 관련하여 즉시 제품이 반환됩니다. " – Michal
결국 두 경우 모두 같은 패턴입니다. 문제 해결자가 해결 한 것이 무엇인지 자문 해보십시오. 그러면 두 가지 설명 모두 해결됩니다. 패턴은 특정 코드에 묶여 있지 않으며 다양한 패턴 구현이 있습니다. –