Re: потокобезопасный Singleton
От: King Oleg Украина http://kingoleg.livejournal.com
Дата: 12.08.05 08:19
Оценка:
Здравствуйте, adontz, Вы писали:

A>Мне тут стало интересно, такой синглтон потокобезопасный? Двух экземплятор не создасться?

A>
A>public class MySingleton
A>{
A>    private static MySingleton _instance = new MySingleton();
    
A>    public static MySingleton Instance
A>    {
A>        get
A>        {
A>            return _instance;
A>        }
A>    }
A>}
A>


Только C# интересует?
King Oleg
*Читайте DOC'и, они rules*
Re[25]: Потокобезопасный Singleton
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.08.05 10:09
Оценка:
Здравствуйте, Merle, Вы писали:

M>Кстати, в общем случае, даже не один экземпляр.

M>Этот паттерн просто позволяет контролировать число экземпляров объекта, а то что как правило требуется только один экземпляр — это частный случай.

Вот это уже будет точно не синглтон. Все же сам смысл этого паттерна нарушается.
... << RSDN@Home 1.2.0 alpha rev. 591>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[26]: Потокобезопасный Singleton
От: Merle Австрия http://rsdn.ru
Дата: 14.08.05 18:33
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Вот это уже будет точно не синглтон.

Именно сингтон:
Re[30]: Потокобезопасный Singleton
Автор: Merle
Дата: 12.08.05


VD> Все же сам смысл этого паттерна нарушается.

И в чем же смысл? Смысл именно в том, что ты можешь контролировать число объектов. А один он тебе нужен или несколько — дело десятое.
... << RSDN@Home 1.1.4 beta 6a rev. 0>>
Мы уже победили, просто это еще не так заметно...
Re[27]: Потокобезопасный Singleton
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.08.05 18:48
Оценка:
Здравствуйте, Merle, Вы писали:

VD>> Все же сам смысл этого паттерна нарушается.

M>И в чем же смысл?

А ты его определение прочитай.

M> Смысл именно в том, что ты можешь контролировать число объектов.


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

M> А один он тебе нужен или несколько — дело десятое.


Нет. Если так вольно эти паттерны трактовать, то тебя никто не сможет понять. Одна из задачь паттернов — это упрощение общения между программистами и дизайнерами.
... << RSDN@Home 1.2.0 alpha rev. 591>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[28]: Потокобезопасный Singleton
От: Merle Австрия http://rsdn.ru
Дата: 14.08.05 19:04
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А ты его определение прочитай.

А ты почитай расширенное толкование...

VD>Нет смысл в предоставлении единой точки доступа к единственному экземляру объекта.

Не к единственному, а к необходимому числу объектов.

VD>Нет. Если так вольно эти паттерны трактовать, то тебя никто не сможет понять.

Чего же тут вольного?
... << RSDN@Home 1.1.4 beta 6a rev. 0>>
Мы уже победили, просто это еще не так заметно...
Re[28]: Потокобезопасный Singleton
От: Павел Кузнецов  
Дата: 14.08.05 19:23
Оценка:
VladD2,

> M> Смысл именно в том, что ты можешь контролировать число объектов.

>
> Нет смысл в предоставлении единой точки доступа к единственному экземляру объекта. В это паттерн и заглючается.

Не стоит так однобоко и категорично...

Вот цитата из классики (специально выискал по-русски):

Результаты
У паттерна одиночка есть определенные достоинства:
<...>

  • допускает переменное число экземпляров. Паттерн позволяет вам легко изменить свое решение и разрешить появление более одного экземпляра класса Singleton. Вы можете применять один и тот же подход для управления числом экземпляров, используемых в приложении. Изменить нужно будет лишь операцию, дающую доступ к экземпляру класса Singleton;

  • Если не ограничиться собственно работой GoF, а почитать еще и последующую работу Влиссидеса, где он более подробно останавливается на том, почему было решено ограничиться в обсуждении нюансов Singleton в первой книге, думаю, вопросы должны будут отпасть.
    Posted via RSDN NNTP Server 2.0 beta
    Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
    Re[29]: Потокобезопасный Singleton
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 15.08.05 11:03
    Оценка:
    Здравствуйте, Merle, Вы писали:

    VD>>А ты его определение прочитай.

    M>А ты почитай расширенное толкование...

    И что там?

    VD>>Нет смысл в предоставлении единой точки доступа к единственному экземляру объекта.

    M>Не к единственному, а к необходимому числу объектов.

    Под рукой нет книги, а Интернет медленный. Прведи, плиз, цитату в котрой об этом говорилось бы.
    ... << RSDN@Home 1.2.0 alpha rev. 591>>
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[29]: Потокобезопасный Singleton
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 15.08.05 11:03
    Оценка: -1
    Здравствуйте, Павел Кузнецов, Вы писали:

    Это уже получается несколько другой паттерн. Я конечно понимаю, что изменить можно все. И что иногда это бывает необходимо. Но, если так вольно обращаться с трактованием, то как понимаь друг-друга произнося "синглтон"?
    ... << RSDN@Home 1.2.0 alpha rev. 591>>
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[30]: Потокобезопасный Singleton
    От: Merle Австрия http://rsdn.ru
    Дата: 15.08.05 12:11
    Оценка: +1
    Здравствуйте, VladD2, Вы писали:

    VD>И что там?

    VD>Под рукой нет книги, а Интернет медленный. Прведи, плиз, цитату в котрой об этом говорилось бы.
    Я уже приводил, как и Паша, цитаты из GоF и из книги Влиссидеса по применению некоторых паттернов описанных в GoF.
    Re[30]: Потокобезопасный Singleton
    Автор: Merle
    Дата: 12.08.05

    Re[28]: Потокобезопасный Singleton
    Автор: Павел Кузнецов
    Дата: 14.08.05

    Да и википедия говорит примерно то же самое:

    In computer science, the singleton design pattern is designed to restrict instantiation of a class to one (or a few) objects.

    ... << RSDN@Home 1.1.4 beta 7 rev. 0>>
    Мы уже победили, просто это еще не так заметно...
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.