Factory for Thread Safe Singleton в Java

Это образец базового шаблона, который я использовал для Factory, который возвращает потокобезопасный синглтон:

public class UserServiceFactory {

    private volatile static UserService userService;

    private UserServiceFactory() { }

    public static UserService getInstance() {
        if (userService == null) {
            synchronized(UserServiceImpl.class) {            
                if (userService == null) {
                    userService = new UserServiceImpl();
                }        
            }
        }

        return userService;
    }

}

Он использует как изменчивую, так и идиому двойной проверки, чтобы гарантировать, что создается единственный экземпляр и виден через потоки.

Есть ли менее подробный и / или менее затратный способ достижения той же цели в 1.6+?

10
задан Dave Maple 22 May 2011 в 13:22
поделиться