Синглтон
От: _d_m_  
Дата: 30.03.12 05:38
Оценка:
Как надо делать? lazy потокобезопасен?
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Re: Синглтон
От: artelk  
Дата: 30.03.12 06:34
Оценка: 4 (1)
Здравствуйте, _d_m_, Вы писали:

___>Как надо делать? lazy потокобезопасен?


http://rsdn.ru/forum/dotnet/4650042.1.aspx
Автор: VladD2
Дата: 06.03.12
Re: Синглтон
От: catbert  
Дата: 30.03.12 07:20
Оценка:
Здравствуйте, _d_m_, Вы писали:

___>Как надо делать? lazy потокобезопасен?


Макрос Singleton из стандартной библиотеки (нужно добавить using Nemerle.DesignPatterns) применяется к классу и реализует потокобезопасный синглтон (публичный, приватный или защищенный в зависимости от настроек).

https://github.com/rsdn/nemerle/blob/master/macros/DesignPatterns.n#L206

Там используется двойная синхронизация, которая в принципе работает под .NET.
Re[2]: Синглтон
От: _d_m_  
Дата: 30.03.12 08:55
Оценка:
Здравствуйте, catbert, Вы писали:

C>Макрос Singleton из стандартной библиотеки (нужно добавить using Nemerle.DesignPatterns) применяется к классу и реализует потокобезопасный синглтон (публичный, приватный или защищенный в зависимости от настроек).


C>https://github.com/rsdn/nemerle/blob/master/macros/DesignPatterns.n#L206


Спс. Но я пока нуб в Н. Как мне сделать синглтон для обобщенного типа?

class Sing[T]
{
    ...
}
...
// и это разные синглтоны 
def a = Sing[int].Get();  
def b = Sing[string].Get();
...
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Re[3]: Синглтон
От: catbert  
Дата: 30.03.12 10:07
Оценка: 4 (1)
Здравствуйте, _d_m_, Вы писали:

___>Здравствуйте, catbert, Вы писали:


C>>Макрос Singleton из стандартной библиотеки (нужно добавить using Nemerle.DesignPatterns) применяется к классу и реализует потокобезопасный синглтон (публичный, приватный или защищенный в зависимости от настроек).


C>>https://github.com/rsdn/nemerle/blob/master/macros/DesignPatterns.n#L206


___>Спс. Но я пока нуб в Н. Как мне сделать синглтон для обобщенного типа?


Ну, по идее не должно быть никаких проблем:

[Singleton]
class Test[T]
{

}

// .....
def x = Test.[int].Instance; // обе точки нужны
def y = Test.[string].Instance;


Но это я не уверен, писал код в браузере.
Re[4]: Синглтон
От: _d_m_  
Дата: 30.03.12 10:57
Оценка:
Здравствуйте, catbert, Вы писали:

C>Здравствуйте, _d_m_, Вы писали:


C>def x = Test.[int].Instance; // обе точки нужны


А я оставил только одну и все ок.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Re[5]: Синглтон
От: Ziaw Россия  
Дата: 31.03.12 03:56
Оценка:
Здравствуйте, _d_m_, Вы писали:

C>>def x = Test.[int].Instance; // обе точки нужны


___>А я оставил только одну и все ок.


Так и должно быть, точка необходима только при вызове дженерик метода. В указании типа она не нужна.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.