为了账号安全,请及时绑定邮箱和手机立即绑定

组件的惰性构建

组件的惰性构建

Smart猫小萌 2021-09-29 15:28:44
我想创建一个具有此要求的对象:对象应该是唯一的,一个实例对象组件(字段)将在我的代码的不同部分初始化,而不仅仅是在一个地方。我怎样才能实现这个?使用 Singleton 或 Builder 或其他设计模式。谢谢
查看完整描述

3 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

如果要object始终使用单个,请使用Singleton模式,

如果要从代码的不同部分初始化字段,请使用setter该字段的方法。

对于第 1 点,我建议您使用Singleton模式。


查看完整回答
反对 回复 2021-09-29
?
呼唤远方

TA贡献1856条经验 获得超11个赞

你可以使用单例。使用 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;

    }

}


查看完整回答
反对 回复 2021-09-29
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

对于单个对象创建,您可以通过创建私有构造函数来限制您的类创建多个对象

示例:


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; 

    } 


查看完整回答
反对 回复 2021-09-29
  • 3 回答
  • 0 关注
  • 162 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信