组件的延迟构造

时间:2018-09-20 07:17:27

标签: java android design-patterns architecture

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

  1. 对象应该是唯一的一个实例
  2. 对象组件(字段)将在代码的不同部分而不是仅在一个地方初始化。

我该如何实施?使用Singleton或Builder或其他设计模式。

谢谢

3 个答案:

答案 0 :(得分:1)

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

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

  

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

答案 1 :(得分:0)

您需要一个Singleton。使用enum代表单例。具有单个元素的enum可以成为不变的Singleton。例如:-

enum Singleton{

    INSTANCE("Value");

    private final String value;

    Singleton(String val){
       value = val;
    }

    public void doSomething(){
        //actions
    }
}

答案 2 :(得分:-1)

对于单个对象的创建,您可以通过创建私有构造函数将类限制为制作多个对象。
示例:

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; 
    } 
}