On Tue, Sep 04, 2012 at 11:22:21AM -0700, John Napiorkowski wrote:
> Bill,
> 
> I've done this a lot in the past, as well as a few other approaches.
>  In the end I've come to the conclusion that although off the top it
> seems like a nice interface, it doesn't grow old well and can be
> confusing to people trying to read your code.  I now tend to think
> that a consuming class should only build its objects when and if it
> needs some way to influence how they are built.  Otherwise over the
> long term you end up with a confusing interface with a lot of stuff
> completely unrelated to the actual functioning of the class.  And it
> harder to test correctly.

Agreed.

> I'm not sure what a better approach could be, but lately I've been
> taking the idea of having dedicated builder classes.  I know that
> sounds heavy handed, but at least it has the upside that my concerns
> are more carefully separated.

The "better approach" that I typically use is Bread::Board(:

-doy

Reply via email to