하나 이상의 매개 변수
Car blueCar = carFactory.create(CarColor.BLUE);
Car redCar = carFactory.create(CarColor.RED);
걸리는 만드는 방법 또는 여러 만드는 방법이 공장이 공장 아무 문제가 없습니다 :
Car blueCar = carFactory.createBlueCar();
Car redCar = carFactory.createRedCar();
대안으로는 유스 케이스에 따라 고려해야 할 가치가있는 팩토리는 빌더 패턴이다. 빌더는 하나의 매개없이 메소드를 작성했지만, 또한, 그것에 의해 생성 될 오브젝트의 속성 설정 방법 가지고 작성 방법은 실제 내부 객체를 생성 왼쪽 구현 세부 얼마나
carBuilder.setColor(CarColor.BLUE);
Car blueCar = carBuilder.create();
carBuilder.setColor(CarColor.RED);
Car redCar = carBuilder.create();
을 자신에게. 그것은 예를 들어 수 :
- 는
- 이 매개 변수에 따라
- 인스턴스화에게 그것의 속성을 다른 서브 클래스를 변경하려면 반환 된 객체에 대한 몇 가지 세터를 호출 한 다음 기본 생성자를 호출하고 매개 변수로 생성자를 호출
- 또는 이러한 옵션의 조합
팩토리와 빌더 패턴을 모두 사용할 수 있습니다. – nawara
@nawara 물론입니다. 원하는 경우 위 세 패턴 모두를 하나의 Creator 객체에 결합하여 setter를 통해 일부 속성을 설정하고 여러 create 메소드를 만들고 create 메소드 중 일부를 추가 매개 변수가 필요하도록 만들 수 있습니다. 그러나 결과 코드가 읽기 쉽고 유지하기가 쉽지 않은 경우 다른 질문입니다. – Philipp
그 아이디어를 적용하려고합니다 – nawara