title: Is there something like a "build-once" builder?
body: <p>our framework provides some kind of "log" objects; which actually represent legacy structures in our legacy C/C++ code. Today I started writing a helper class that uses the builder pattern to allow a more modern-age approach for creating such log objects. </p>
  
  <p>But there is one question for which I am not sure what the correct answer is:</p>
  
  <p>basically these log objects have some attributes that are "required"; so following the builder pattern, you have to specify these arguments as arguments for ctor of my new builder class. Then the builder has a some methods to configure "optional attributes"; and of course a method "build()" that will emit a log object with the summary of the collected values.</p>
  
  <p>But now I am wondering: should I care if people would be re-using the same builder object? So, should I have a "reset()" method to clear all optional arguments; or prevent that build() is called more than once?
  Or better not worry not all?</p>