Java 및 C #에서는 매개 변수를 사용하여 생성자를 정의하거나, 오브젝트를 구성한 후 각 특성을 정의하거나, 빌더 / 유체 인터페이스 패턴을 사용하여 초기화시 설정할 수있는 특성으로 오브젝트를 작성할 수 있습니다. 그러나 C # 3에는 객체 및 컬렉션 이니셜 라이저가 도입되어 빌더 패턴이 크게 쓸모가 없었습니다. 이니셜 라이저가없는 언어에서는 빌더를 구현 한 후 다음과 같이 사용할 수 있습니다.
Vehicle v = new Vehicle.Builder()
.manufacturer("Toyota")
.model("Camry")
.year(1997)
.colour(CarColours.Red)
.addSpecialFeature(new Feature.CDPlayer())
.addSpecialFeature(new Feature.SeatWarmer(4))
.build();
반대로 C #에서는 다음과 같이 작성할 수 있습니다.
var vehicle = new Vehicle {
Manufacturer = "Toyota",
Model = "Camry",
Year = 1997,
Colour = CarColours.Red,
SpecialFeatures = new List<SpecialFeature> {
new Feature.CDPlayer(),
new Feature.SeatWarmer { Seats = 4 }
}
}
... 이전 예제에서 볼 수 있듯이 빌더가 필요하지 않습니다.
이 예제를 기반으로 빌더는 C #에서 여전히 유용합니까, 아니면 초 기자에 의해 대체 되었습니까?
are builders useful
왜 이런 종류의 질문을 계속 볼 수 있습니까? 빌더는 디자인 패턴입니다. 언어 기능으로 노출 될 수 있지만 하루가 끝나면 디자인 패턴 일뿐입니다. 디자인 패턴 은 "잘못"될 수 없습니다 . 유스 케이스를 충족시킬 수도 아닐 수도 있지만 패턴 전체를 잘못 적용하지는 않습니다. 하루가 끝나면 디자인 패턴이 특정 문제를 해결한다는 것을 기억하십시오. 문제에 직면하지 않으면 왜 문제를 해결하려고 시도합니까?