I don't have strong opinions, but I've used the same pattern (nested internal classes) on several occasions, so I agree with your choice.
Kalle On Fri, Aug 28, 2009 at 6:50 AM, Les Hazlewood<[email protected]> wrote: > Since no one seems to have an opinion about this either way, I think > I'm going to use Josh Bloch's approach of a nested internal class - > this way things stay consistent with a well-known piece of literature > and it is easily 'findable' when looking at the Subject interface. > > - Les > > On Tue, Aug 25, 2009 at 2:37 PM, Les Hazlewood<[email protected]> wrote: >> In setting up the Builder design pattern for constructing instances, >> I've currently created the SubjectBuilder and a WebSubjectBuilder >> classes. >> >> In Josh Bloch's "Effective Java", Second Edition, Item #2 (page 11), >> he advocates the Builder pattern for the exact same reasons why I've >> added the above classes. But his Builder classes are nested classes >> within the class/interface being built. That is: >> >> public ClassToBuild { >> ... >> public static class Builder { >> } >> ... >> } >> >> My question is: >> >> Should SubjectBuilder be changed to Subject.Builder (a nested public >> static class in the Subject interface) or keep SubjectBuilder? >> >> My initial thought is to change to Subject.Builder to >> >> 1) keep it consistent with a widely read piece of literature that >> people are readily familiar with and >> 2) being in the Subject interface inherently makes it easier to find >> by people reading the JavaDocs. >> >> That is, as an end user, I probably wouldn't know that a Builder >> existed for Subject instances unless someone told me. But if I saw it >> in the Subject interface, probably the most widely referenced >> interface in the framework, it would be easier to learn to use since I >> couldn't avoid seeing it if I tried ;) >> >> Thoughts? >> >> Les >> >
