您的位置:首页 > 其它

Factory methods are static methods that return an instance of the native class(保护CONSTRUCTOR)

2016-02-04 14:00 381 查看
Factory methods are static methods that return an instance of the native class. Examples in the JDK:
LogManager.getLogManager
Pattern.compile
Collections.unmodifiableCollection, Collections.synchronizeCollection ,
and so on
Calendar.getInstance
Factory methods:
have names, unlike constructors, which can clarify code.
do not need to create a new object upon each invocation - objects can be cached and reused, if necessary.
can return a subtype of their return type - in particular, can return an object whose implementation class is unknown to the caller. This is a very valuable and widely used feature in many frameworks which use interfaces
as the return type of static factory methods.
Common names for factory methods include getInstance and valueOf.
These names are not mandatory - choose whatever makes sense for each case.

Example 

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
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: