Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #30579
| Newsgroups | comp.lang.java.programmer |
|---|---|
| Date | 2014-12-18 05:57 -0800 |
| Message-ID | <ff7f0941-582f-4a6f-83fd-2fa71434ff46@googlegroups.com> (permalink) |
| Subject | a question about factory method |
| From | John <xsli2@yahoo.com> |
Hi:
I am reading a very good web site
http://www.javapractices.com/topic/TopicAction.do?Id=21
I have a question about the following code:
public final class ComplexNumber {
/**
* Static factory method returns an object of this class.
*/
public static ComplexNumber valueOf(float aReal, float aImaginary) {
return new ComplexNumber(aReal, aImaginary);
}
/**
* Caller cannot see this private constructor.
*
* The only way to build a ComplexNumber is by calling the static
* factory method.
*/
private ComplexNumber(float aReal, float aImaginary) {
fReal = aReal;
fImaginary = aImaginary;
}
private float fReal;
private float fImaginary;
//..elided
}
The code uses a private constructor and the factory method. I also notice this class is an immutable class. If I write this class, I would simply have a public constructor, like:
public final class ComplexNumber {
public ComplexNumber(float aReal, float aImaginary) {
fReal = aReal;
fImaginary = aImaginary;
}
private float fReal;
private float fImaginary;
//..elided
}
Could you explain to me why their code is better than mine? If theirs is singleton, I would agree. But in this case, it does not make sense for using singleton. The only thing I can think of is using their code is more like following a trend, e.g. String.valueOf(xxx).
I guess most people will do what I do here.
Back to comp.lang.java.programmer | Previous | Next — Next in thread | Find similar | Unroll thread
a question about factory method John <xsli2@yahoo.com> - 2014-12-18 05:57 -0800
Re: a question about factory method Robert Klemme <shortcutter@googlemail.com> - 2014-12-18 15:28 +0100
Re: a question about factory method Silvio <silvio@internet.com> - 2014-12-18 15:43 +0100
Re: a question about factory method Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-12-18 10:37 -0500
Re: a question about factory method John <xsli2@yahoo.com> - 2014-12-18 08:04 -0800
Re: a question about factory method Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-12-18 12:04 -0500
Re: a question about factory method John <xsli2@yahoo.com> - 2014-12-18 10:43 -0800
Re: a question about factory method Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-12-18 14:24 -0500
Re: a question about factory method Robert Klemme <shortcutter@googlemail.com> - 2014-12-19 01:39 +0100
Re: a question about factory method Roedy Green <see_website@mindprod.com.invalid> - 2014-12-18 13:43 -0800
csiph-web