All streams
Search
Write a publication
Pull to refresh
14
0
Сергей Б. @sergey-b

Пользователь

Send message
В вашем примере нельзя так делать, зато бывает много ситуаций, когда создание лишнего экземпляра не вызывает проблем.
Я не очень представляю, где тут может помочь volatile. Предположим, поле accessor я сделал volatile. Что изменится? Доступ к экземпляру целевого класса у меня осуществляется через промежуточное поле с модификатором final, а его корректное значение вроде бы гарантируется.
Правда что ли?

Не узнал.
1. Вы полагаете, что в каком-нибудь потоке будет ссылка на не до конца проинициализированный экземпляр целевого класса?

2. Вот, что Eclipse мне пишет: Read access to enclosing field TestClass.testField is emulated by a synthetic accessor method. Change visibility of 'testField' to default. Никогда не вдавался в подробности, что это такое, апросто ставил видимость default.

3. Согласен.
Согласен. Все глобальные объекты инициализируешь до того, как потоки начнут с ними работать. И никакие синглтоны не нужны.

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

Вы не знаете, есть ли у данного способа устоявшееся название? Я его назвал function pointer, потому что его на C можно реализовать при помощи указателей на функции. Среди объектно-ориентированных паттернов мне почему-то ничего похожего не попадалось.
А что будет, если из конструктора Something вылетит исключение?
12 ...
51

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Registered
Activity