登录
    Technology changes quickly but people's minds change slowly.

创建和销毁对象–用静态工厂方法代替构造器

人丑多读书 破玉 1368次浏览 0个评论

可以参考 静态工厂方法

用静态工厂方法代替构造器的几个优点:

1.静态工厂方法有名称

我们可以为静态工厂方法起不同的名称,从而在调用时识别出该方法创建的实例是哪种类型的。

2.避免创建重复的对象

我们在使用静态工厂方法时不必在每次调用时创建一个新的对象。可以将构建好的实例缓存起来,进行重复利用,从而避免创建不必要的重复
对象。可以将构造方法私有化,通过一个函数返回一个唯一得到对象,从而避免创建重复的对象,这种方式在单例模式中用的很多。

public class Singleton {
	private static Singleton st = null;

	//构造方法私有化,只通过 getInstance来获取实例
	private Singleton() {
		
	}

	public static Singleton getInstance() {
		if(st==null){
			st=new Singleton();
		}
		return st;
	}

}

3.返回原类型任何子类型的对象

API可以返回对象,同时又不会使对象的类变成公有的,接口为静态工厂方法提供了自然返回类型

缺点

1.类如果不包含公有的或者受保护的构造器,就不能被子类化。

2.他们与其他静态方法没有任何区别


华裳绕指柔, 版权所有丨如未注明 , 均为原创|转载请注明创建和销毁对象–用静态工厂方法代替构造器
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址