组件的惰性构建

我想创建一个具有此要求的对象:

  1. 对象应该是唯一的,一个实例

  2. 对象组件(字段)将在我的代码的不同部分初始化,而不仅仅是在一个地方。

我怎样才能实现这个?使用 Singleton 或 Builder 或其他设计模式。

谢谢


Smart猫小萌
浏览 163回答 3
3回答

忽然笑

如果要object始终使用单个,请使用Singleton模式,如果要从代码的不同部分初始化字段,请使用setter该字段的方法。对于第 1 点,我建议您使用Singleton模式。

呼唤远方

你可以使用单例。使用 anenum表示单例。对于可变字段,读取和写入的访问应该同步。或者您可以查看AtomicReference, 或java.util.concurrent包中的其他原子实现。例如:-enum Singleton{    INSTANCE("Value");    private final String value;    private String otherValue;    Singleton(String val){       value = val;    }    public void doSomething(){        //actions    }    public synchronized void setOtherValue(String value){        this.otherValue = value;    }    public synchronized String getOtherValue(){         return otherValue;    }}

梦里花落0921

对于单个对象创建,您可以通过创建私有构造函数来限制您的类创建多个对象示例:class Test {     private static Test single_instance = null;     public String s;     private Test()     {         s = "example";     }     public static Test getInstance()     {         if (single_instance == null)             single_instance = new Test();         return single_instance;     } } 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java