工厂模式
工厂模式是对象的创建模式,工厂负责实例化对象,做到对象的使用和创建分离,职责分明,便于维护和扩展。
1.简单工厂模式,又叫静态工厂模式。
java.lang.Integer#valueOf(String) (Boolean, Byte, Character,Short, Long, Float 和 Double与之类似)
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
可以把Integer看成工厂类,valueOf实例化一个Integer对象。
2.抽象工厂模式,对工厂进一步抽象。当需要扩展新的类,不用修改原代码,增加具体工厂继承抽象工厂即可。
Object类相当于抽象工厂:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
Double类相当于具体工厂,重写toString方法创建String对象:
public String toString() {
return toString(value);
}
public static String toString(double d) {
return FloatingDecimal.toJavaFormatString(d);
}
Integer类相当于具体工厂,重写toString方法创建String对象:
public String toString() {
return toString(value);
}
public static String toString(int i) {
if (i == Integer.MIN_VALUE)
return "-2147483648";
int size = (i < 0) ? stringSize(-i) + 1 : stringSize(i);
char[] buf = new char[size];
getChars(i, size, buf);
return new String(buf, true);
}
好记性不如烂笔头,提升自己:http://www.urlort.cn/1DjfQb
github地址:https://github.com/997480972