java进阶-创建和销毁对象

版权声明:本文为博主原创文章,未经博主允许不得转载。 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();
    }
}

持续更新中…….

猜你喜欢

转载自blog.csdn.net/wcandy001/article/details/49669599