Right, to me using "with" implies getting a *new* object/copy. Gary
On Mon, Nov 30, 2015 at 12:17 PM, Paul Benedict <pbened...@apache.org> wrote: > Gary, I also prefer "set" but I didn't want to pollute my objectivity in > explaining the options. My cards are now laid down. :-) BTW, "with" has > been used in JSR-310 (Java 8 Date/Time) for immutable objects "mutability"; > that prefix means you get back a new object when "changing" the property > (think String behavior). That doesn't apply here so I recommend avoiding > "with" too. > > > Cheers, > Paul > > On Mon, Nov 30, 2015 at 2:13 PM, Gary Gregory <garydgreg...@gmail.com> > wrote: > >> I find using foo() instead of setFoo() somewhat confusing. It forces you >> to think that you are using a builder and you cannot just do >> set/auto-complete. In addition, when foo is a verb, it's misleading, since >> the call does not perform anything but merely sets a value. >> >> Gary >> >> On Mon, Nov 30, 2015 at 11:49 AM, Paul Benedict <pbened...@apache.org> >> wrote: >> >>> I actually had an interesting discussion lately with builders; so this >>> topic interests me. Since builders are inherently mutable (and they should >>> be right? it's a process of constructing an object), it's okay to use "set" >>> methods. For example, see Spring's BeanDefinitionBuilder [1]. But you don't >>> have to take this approach. It's also fine to name the mutator like an >>> operation; see Java EE's URIBuilder [2] for that approach. >>> >>> My preference comes down to whether the in-process information is >>> retrievable? If so, I prefer getter/setter; otherwise just go with foo() >>> over setFoo() >>> >>> [1] >>> https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/beans/factory/support/BeanDefinitionBuilder.html >>> [2] >>> https://docs.oracle.com/javaee/7/api/javax/ws/rs/core/UriBuilder.html >>> >>> Cheers, >>> Paul >>> >>> On Mon, Nov 30, 2015 at 1:44 PM, Gary Gregory <garydgreg...@gmail.com> >>> wrote: >>> >>>> I like "set" better, but that's just because I like to type "set" and >>>> use auto-complete. I'd rather not have to decide if I have to type "set" or >>>> "with" and then auto-complete. >>>> >>>> Gary >>>> >>>> On Mon, Nov 30, 2015 at 11:36 AM, Matt Sicker <boa...@gmail.com> wrote: >>>> >>>>> Sorry, but I introduced this problem a while ago by using withFoo() in >>>>> some builder classes, but setFoo() in other builder classes. Both are >>>>> equally valid naming schemes for builder classes. It would be great to be >>>>> consistent, though. Which one would be preferable? >>>>> >>>>> -- >>>>> Matt Sicker <boa...@gmail.com> >>>>> >>>> >>>> >>>> >>>> -- >>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>> Java Persistence with Hibernate, Second Edition >>>> <http://www.manning.com/bauer3/> >>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>>> Spring Batch in Action <http://www.manning.com/templier/> >>>> Blog: http://garygregory.wordpress.com >>>> Home: http://garygregory.com/ >>>> Tweet! http://twitter.com/GaryGregory >>>> >>> >>> >> >> >> -- >> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >> Java Persistence with Hibernate, Second Edition >> <http://www.manning.com/bauer3/> >> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >> Spring Batch in Action <http://www.manning.com/templier/> >> Blog: http://garygregory.wordpress.com >> Home: http://garygregory.com/ >> Tweet! http://twitter.com/GaryGregory >> > > -- E-Mail: garydgreg...@gmail.com | ggreg...@apache.org Java Persistence with Hibernate, Second Edition <http://www.manning.com/bauer3/> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> Spring Batch in Action <http://www.manning.com/templier/> Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory