2016-02-25 7 views
1

Предположим, у меня есть класс в Java, как это:Статические методы в Singleton

public class ClassicSingleton { 
    private static ClassicSingleton instance = null; 
    protected ClassicSingleton() { 
     // Exists only to defeat instantiation. 
    } 
    public static ClassicSingleton getInstance() { 
     if(instance == null) { 
     instance = new ClassicSingleton(); 
     } 
     return instance; 
    } 

    public void initialize(String id, Double num, String data){ 
     .... 
    } 

} 

Что такое идеальный тип метод для моего ClassicSingleton, если я буду получать доступ к «экземпляр» его в другом классе?

Если инициализация быть статической функции, так что я могу просто назвать это в другом классе:

ClassicSingleton mySingleton = ClassicSingleton.getInstance(); 
mySingleton = ClassicSingleton.initialize("id",0.0,"data"); 

или я должен оставить инициализации, как это и называют:

ClassicSingleton mySingleton = ClassicSingleton.getInstance(); 
mySingleton.initialize("id",0.0,"data"); 

ответ

0

Если вы обращаетесь к экземпляру затем использовать второй вариант

ClassicSingleton mySingleton = ClassicSingleton.getInstance(); mySingleton.initialize («id», 0.0, «data»);

0

initialize должен быть статический метод. Идея Singleton состоит в том, что это только экземпляр этого объекта. Если один объект инициализируется дважды или инициализируется через экземпляр этого объекта, он слегка побеждает цель шаблона Singleton.

Лично я хотел бы позвонить initialize в конструктор, который сам вызывается только один раз, чтобы предотвратить путаницу.

0

Если вы создаете экземпляр класса Singleton, тогда вы должны перейти на второй номер

Смежные вопросы