On Mon, Jul 28, 2008 at 10:44 AM, Brian Eaton <[EMAIL PROTECTED]> wrote:

> etnu wrote:
> > Now that we're up to 7 parameters on this constructor, can we accept that
> > making everything an HttpFetcher is not the best design choice we've ever
> > made? :) This is especially bad since only two of these parameters vary
> per
> > invocation. This is extremely confusing code to follow, and could be much
> > better written as a singleton with an inner class for request handling.
>
> ... which would move the code from using an OAuthFetcherFactory and an
> OAuthFetcher to using OAuthFetcher and an inner class.  You still have
> two classes, and the two classes need to implement the exact same
> logic.  It doesn't make things simpler, it just moves complexity.
>
> About the number of parameters that will vary: nextFetcher, params,
> and authToken are all reasonable things to vary per-request.  The rest
> are there for dependency injection.  We could use Guice for them, I
> suspect.


Yes, exactly -- the outer class can use method injection (or a builder
perhaps) for these and can have the inner objects have references to them.

When there's 7 parameters, it's very hard to follow at the call site. I'd
argue against anything with more than 3 or 4 parameters. Builders and
setters are much easier to follow.

Reply via email to