Effective Java笔记(3)

来源:互联网 发布:软件企业量化管理 编辑:程序博客网 时间:2024/06/15 19:47

Item 3: Singleton Pattern + private constructor


两种singleton 的方式:

A. 初始化object,将其作为一个public的instance variable

public class Tree {

public static final treeInstance = new Tree();

......


private Tree() {......};

}


B. 提供获取object的factory method(更方便维护,可以通过更改factory method的具体实现取消singleton的限制,比如每次都返回一个全新的object)

public class Tree {

private static final treeInstance = new Tree();

......


public static Tree getTree(){return treeInstance};

public Tree() {......};

}


Note: 使用singleton pattern时,如果想把class变成serializable,需要重写readResolve()方法,以免读出来的时候重新初始化一个object 

0 0