ビルダーをクラスに注入すると、ビルダーがどのような状態にあるのか確信が持てないことがわかりました。ビルダーに...それ自体を構築する機能を提供することを考えています。
誰かがこのようなことをしたことがありますか?
public interface IProductBuilder{
// Creates a new instance of the builder
IProductBuilder Create();
// Adds a part
IProductBuilder Add(IPart Part);
// Creates the product
IProduct Build();
}
ユースケースは次のとおりです。
[Export]
public class SomeClass : ISomeService{
[ImportingConstructor] // inject through MEF
public SomeClass(IProductBuilder builder){
this.builder = builder;
}
public IBar bar SomeFunction(IPart foo)
{
var mybuilder = builder.Create(); // was the builder populated?
builder.Add(foo);
return builder.build();
}
}
もちろん、これはビルダー自体が常に無駄に作成されるか、シングルトンにすることができることを意味します。
フィードバックをいただければ幸いです。