title: Multicast Delegates implement the Builder pattern?
body: <p>Is the use of multicast delegates an appropriate way to implement the Builder design pattern?</p>
  
  <p>The reason I ask is because my concept/understanding of the Builder pattern is a collection of methods that can be combined/rearranged like LEGO blocks. So you might have the following methods:</p>
  
  <pre><code>void Shave(int StrokeCount) { ... }
  void FeedTheDog(int Cups) { ... }
  void MakeCoffee(int Cups) { ... }
  void Shower(int Temperature) { ... }
  </code></pre>
  
  <p>...that can be mixed-and-matched/LEGO'd together, so that one morning you call:</p>
  
  <pre><code>Shower()
  FeedTheDog()
  MakeCoffee()
  </code></pre>
  
  <p>...another morning:</p>
  
  <pre><code>Shower()
  Shave()
  FeedTheDog()
  MakeCoffee()
  </code></pre>
  
  <p>...another morning:</p>
  
  <pre><code>MakeCoffee()
  FeedTheDog()
  Shower()
  </code></pre>
  
  <p>(etc. &amp;c. ad infinitum ad nauseum)</p>
  
  <p>And since multicast delegates allow you to add same-signatured methods to an instance of the delegate, and they will fire in the order you add them, there seems to be a semantic connection here (in my mind/to my current way of thinking, anyway). I may be wrong, though, that's why I ask.</p>