版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wcandy001/article/details/49669599
目的:掌握何时以及如何创建对象,何时以及如何避免创建对象,如何适时的销毁的优化方法。
第一条:用静态工厂代替构造器
优点1:简化赋值过程
例
原构造器版:
Map<String,List(String)> m=new HashMap<String,List<String>>();
静态工厂方法:
public static HashMap<k,v> newInstance()
{
return new HashMap<k,v>;
}
Map<String,List(String)> m=HashMap.newInstance();
优点2:静态方法有名称,而构造器只能靠参数不同去记忆,但有时,或许各种个样的构造器真的不是那么好记,比如
构造器模式:
private static int a;
private static long b;
public void str(int a,long b)
{
this.a=a;
this.b=b;
}
这样不利于运用,会有调用错误构造器的可能
比如public void str(long a,int b)
静态工厂方法模式:
public class str {
private static int a;
private static long b;
public static str newInstance_int_long(int a,long b)
{
str b1=new str();
b1.a=a;
b1.b=b;
return b1;
}
优点3:静态工厂方法可以指定返回的指定实例,而不会创建实例
场景:需要存储一个指定对象,同时允许可以创建实例(也就是说不能单例模式)
public class aaa(
private static aaa str=new aaa();
public static aaa strInstance()
{
return str;
}
}
这样每次执行strInstance方法都会返回指定的str实例
优点4:静态工厂方法可以返回原返回类型的任何子类型
例
已知public class sub_class extends parent_class
public parent_class{
public static parent_class newInstance_sub_class()
{
return new sub_class();
}
}
持续更新中…….