기술적으로 빌더 패턴을 따르지는 않지만 확장 메소드로 구현된 정적 빌더는 동일한 기능을 달성하는 또 다른 방법입니다.
개인적으로 빌더패턴에서 완성 – Build() – 하지 않은 단계에서 내용을 수정할 수 있는 확장 메서드 방식은 저자의 의견과는 다르게 지양해야 한다는 입장입니다. 확장 메소드를 이용하면서 제가 원하는 방식으로 중간과정을 은닉하기 위해서는 인터페이스를 정의 – ISaladBuilder – 하여 노출하고 노출된 메소드는 WithTomatoes()
등이 되며 최종 Build()
메소드를 통해 Salad
로 캐스팅 하는 방식은 어떨까요?
https://ilyana.dev/blog/2021-07-22-builder-static-extension/