Re[2]: Производные синглтоны
От: _FRED_ Черногория
Дата: 16.10.09 08:07
Оценка: 3 (1)
Здравствуйте, Sinclair, Вы писали:

D>>Возможно ли при вызовые B.GetInstance() в статическом методе GetInstance понять,

D>>что тип класса не A а B, преобразовать его и создать новый экземпляр?

S>Рекомендую сделать так:

S>public class Singleton<T>
S>    where T : Singleton<T>, new()
S>{
S>    public static T Instance
S>    {
S>        get
S>        {
S>            return new T(); // заменить на код получения единственного экземпляра типа T.
S>        }
S>    }
S>}


А разве имеет смысл (если синглетоны вообще смысл имеют) делать открытый (то есть доступный всем) конструктор у синглетона? ИМХО, суть синглетона как раз в том, что _нельзя_ получить более одного экземпляра синглетона (не зря синглетонами называют именно _типы_ а не что-то ещё). Если эта суть нарушается, то такой синглетон превращается в самую обычную глобальную переменную Тогда уж точно можно (то есть лучше) обойтись любым DI-контейнером.
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.