|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Хочеться узнать мнение сообщества :) имеет ли право существовать такой подход?:) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 15:20 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, Нет, singleton должен существовать в единственном экземпляре, а у вас можно на создавать сколько угодно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 15:25 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 15:53 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Т. е. совместить шаблонный метод и синглтон нельзя?:) но почему? 1) в данном случае все очевидно, для шаблона типа TClass создается единая точка входа 2) код синглтона пишется 1 раз а потом просто подставляются необходимые типы... вместо того чтобы на каждый класс - синглтон прописывать код который подобен коду приведенному в википедии, логика размазывается однако, и поддержка становиться тяжелее 3) при этом сохраняется возможность создать экземпляр класса если очень хочется, т. к. многие ругают синглтон за то что как раз и нельзя создать еще экземпляры 4) да это похоже на фабрику с тем отличием, что в фабрике можно получить много экземпляров а тут только 1 5) Приветствую критику но только конструктивную, а не в "стиле ты не знаешь зачем нужны шаблоны и. т. д.", что такое щаблоны я знаю и в своем коде успешно ими пользуюсь, просто не забывайте что таже банда 4 говорила о том что она предоставляет рекомендации к решениям распространенных задач, а если это только рекомендации то и немного их изменять позволительно, а не так как "шаг влево, шаг в право - побег, прыжок на месте - провокация" ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 16:48 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
ЕвгенийВВасилий Викторович, Нет, singleton должен существовать в единственном экземпляре, а у вас можно на создавать сколько угодно. обьявите protected конструктор в классе который замещает шаблонный тип в данном варианте синглтона и все... вот вам и поведение стандартного синглтона, какие проблемы? обьявить protected конструктор на много проще чем тащить в класс всю инфра структуру синглтона, ладно если подобных класов 1-2 на проект а если их будет штук 10-15? не замучаетесь каждый раз писать одно и тоже?:) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 16:55 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, 1) В Википедии тоже шаблон, они просто не требуют наличия открытого конструктора. Так что видимо вы не читали, но осуждаете. 2) Добавьте в пример на вики | BindingFlags.Public (если не путаю) и можно будет использовать и открытый конструктор ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 16:56 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, с конструктором погорячился каюсь, но всеже почему этот вариант плох?:) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 16:59 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, А в чем, кроме конструктора вы отличия видите? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 17:02 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, я не осуждаю код на вики, я просто хочу узнать почему совмещение шаблонного метода и синглтона это плохо :) как мне утверждает ЕвгенийВ :) почему такой подход не имеет права на существование?:) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 17:03 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, вот тут 14097964 я описывал преимущества, по моему мнению :), совмещения шаблонного метода и синглтона ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 17:05 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, Вы сравните ваш код и код на вики. Отличие в том что вы требуете от класса, который будет синглтоном, наличия открытого конструктора. На вики такого требования нет. Расширить их вариант до вашего можно, добавив BindingFlags.Public в вызов коструктора. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 17:09 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, ты читал 14097964 ?:) я не стремлюсь к открытому конструктору шаблонного типа :) я не хочу 100500 раз писать однотипный код шаблона синглтон когда мне он потребуется :) эххх не получиться из тебя "ленивый" программист ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 17:19 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, Читал, на вики тоже есть пример с шаблоном, я не могу понять почему вы в нем тех же возможностей не видите. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 17:21 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, ваш код - баян. Вот, откопал в старом проекте: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Советую сходить по ссылке ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 17:23 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Да нормальный вариант, для своих задач. Я его использую, когда делаю какой-то прототип или наколенную поделку. То есть, я точно знаю, что каждый сервис будет иметь только одну реализацию и мне не нужны еще какие-то реализации для тестирования. Вот вариант Singleton, найденный на просторах интернета, мне он больше понравился)): Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Ну а если вдруг поделка превратится в что-то стоящее, с реализацией менно такого Singleton легко перепрыгнуть на IoC. Пример: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 17:24 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Ответ на вопрос в заголовке топика - Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 17:24 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
SerP1983Вот вариант Singleton, найденный на просторах интернета, мне он больше понравился: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Это Sixth version - using .NET 4's Lazy<T> type . ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 17:27 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, потому что код использует рефлексию, а поверьте моему опыты рефлексия не есть "серебряная пуля", кто любит обвешиваться и поддерживать рефлексию флаг ему в руки ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 17:29 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
А причем тут "серебряная пуля"? Чем в данном случае рефлексия хуже вашего варианта?) Я ее тоже не особо люблю, но она гораздо лучше вашего варианта с принудительно открытым конструктором. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 17:32 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, SerP1983, вам персональное спасибо, единственные адекватные ответы ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 17:32 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, Поправка- единственные ответы , которые Вам понравились) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 17:34 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, нуу... если вам так нравиться рефлексия флаг вам в руки :) видимо вы с не по настоящему не сталкивались и не поддерживали код-лапшу который довольно активно юзал рефлексию :), после такого к данному инструменту я имею прохладное отношение и использую действительно в КРАЙНИХ случаях, а простейший синглтон это не крайний случай ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 17:35 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
То есть лучше, если ВСЕ мои классы, которые должны быть Синглтонами будут иметь открытый конструктор? XDDDD Флаг вам в руки) А лучше знамя ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 17:38 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchТо есть лучше, если ВСЕ мои классы, которые должны быть Синглтонами будут иметь открытый конструктор? XDDDD Флаг вам в руки) А лучше знамя )))Это Вы Джону Скиту скажите ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 17:42 |
|
|
start [/forum/topic.php?fid=20&fpage=170&tid=1404938]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
77ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 181ms |
0 / 0 |