|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#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 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Куда скинуть?) мне интересно спросить, почему для синглтонов требуется наличие открытого конструктора) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 17:46 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, А вы прочтите C# in Depth. Implementing the Singleton Pattern in C# и найдите там шаблон синглтона с T:new() :) Я так понимаю это его произведение?)) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 17:59 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch,ну ну... говорю ж тебе не станешь, ты "ленивым" программистом, всегда себе какую то проблему найдешь, то рефлексия то к шаблону предерешься, наверное тебе нравиться писать много кода :) или ты его не пишешь а копируешь из других источников?:) а потом пилишь напильником? если что не стесняйся тут все свои ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 18:17 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
А вы пишите велосипеды на каждый чих? Не стесняйтесь тут полфорума такие)) какие кстати претензии к тому применению рефлексии что на вики, какая с ней может быть проблема?) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 18:19 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, если у меня есть классы с публичными конструкторами по умолчанию, то как мне добавить в них ещё и НЕ публичные конструкторы по умолчанию? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 18:50 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 18:53 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Может стоит внимательно прочесть, про то что я предлагал для таких случаев добавить к примеру на вики BindingFlags.Public ?:) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 18:54 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, ваш код не является реализацией паттерна синглтон причина - открытый конструктор я не говорю , что он плохой или хороший ответ на вопрос : Имеет ли право существовать такой подход к сиглетону ? - НЕТ Имеет ли право существовать такой подход]? - ДА ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 18:55 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, да не никаких проблем :),делайте так как хотите, хоть через рефлексию, хоть без нее :) да вот только при использовании подобного вики подобного варианта синглтона всплывает интересная штука :) Код: c# 1.
ну ну.... интересно тот кто будет поддерживать данный код (а это могу быть и не я) сильно будет материться ? а если подобного кода в проекте будет больше чем 1 место в 1 классе? да разбросан этот будет не по одному модулю и не одному классу :) о как бы я хотел посмотреть как бы Вы поддерживали хотя бы 10000 строк написанных подобной, или схожей абракадаброй , вы слишком мало писали кода если вы не понимаете что подобный код должен быть оправдан вескими причинами :), а если этих причин нет то за такое отрывают руки P. S. а в открытом паблик конструкторе я не вижу ничего дурного почти у 95% классов открытые паблик - конструкторы той или иной реализации P. P. S. а если кто - то решил создать обьект типа TClass минуя конструкцию Singleton<TClass> значит ему это нужно и он сам несет за это ответственность, если что пойдет не так то он ССЗБ ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 18:55 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
pation, мдя.. еще один защитник буквы закона :) люди.... ОДУМАЙТЕСЬ :) шаблоны проектирования НЕ есть статическая вещь :) и их можно и НУЖНО изменять :) а если вы считаете что Gof дала вам универсальную серебряную пулю... от всех проблем мне вас жаль :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 18:58 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Ну если вы говорите о сферическом в вакууме применении рефлексии, то ваше право, мой вопрос состоит в том, что конкретно плохого в этой строчке? Или она вам кажется непостижимо сложной? Как относятся 95% классов с открытыми конструкторами к реализации синглтона? Правильно, в самом C# способов выстрелить себе в ногу недостаточно, надо добавить самописных.. ) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 19:00 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Товарищи, вот есть у меня класс, что какое-то время используется так: var instance = new MyClass(). И как мне к нему применить паттерн Singleton? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 19:11 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторовичpation, мдя.. еще один защитник буквы закона :) люди.... ОДУМАЙТЕСЬ :) шаблоны проектирования НЕ есть статическая вещь :) и их можно и НУЖНО изменять :) а если вы считаете что Gof дала вам универсальную серебряную пулю... от всех проблем мне вас жаль :) шаблоны статическая вещь, логическую концепцию шаблона менять никто не вправе, ибо это будет другой шаблон. Техническую реализацию и тюнинг - пожалуйста, не нравится шаблон изобретите свой, ( но это будет ваш, а не тот что вам не нравится) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 19:12 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, для меня да кажется непонятной , [сарказм]Конечно там же так много непонятных буковок латинского алфавита[/сарказм] а насчет синглтона и его конструктора я могу ответить принципом Оккама, если знаете такой конечно, - "Не умножай сущности без необходимости", в данном конкретном случае синглтона рефлексия ненужна и вредна, потому как затрагивает не нужный в данном случае (и опасный, да да это тот самый способ выстрелить себе в ногу) метод создания экземпляра класса с использованием знания о том как создает обьекты компилятор C#, или вы хотите сказать что вы все внутриности компилятора C# понимаете?:) P. S. проблема в том что ни Вы ни я не можем четко сказать что же именно делает эта строчка и что за интересные флаги в нее передаються :), точнее сказать то можем а вот понимание почему именно так а не иначе... знаете меня не сильно прельщает перекопать груду документации на MSDN для того чтобы через несколько дней или недель я действительно стал понимать ПОЧЕМУ ЭТО ТАК НАПИСАЛИ... повторяю еще раз я не против рефлексии как таковой но пусть ею занимается компилятор а не человек :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 19:13 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Унаследовать его от сабжевой / вики реализации и использовать свойство Instance? Ну или вот так: Singleton<MyClass>.Instance ? Или вы хотите, чтобы при вызове конструктора возвращалась ссылка на Singleton<MyClass>.Instance ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 19:17 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Где-то в степи, и мир статическая вещь ?:) ну батиенька я вас разочарую, это не так :) а насчет почему я так высоко взял :) - программные системы это отображение систем реального мира, и если вы считаете что это не так... ну я вам сочуствую, а если программные системы это отображение реального мира значит они обладают очень интересным свойством- динамикой изменений, а значит все концепции которые описывают программную систему ТАКЖЕ являються динамически изменяемыми . Если бы такого не было мы бы до сих пор в двоичных кодах писали ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 19:18 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, Она ищет конструктор экземпляра без параметров с не-публичным модификатором доступа. Я хз насчет нескольких дней, достаточно глянуть на метод GetConstructor и перечисление BindingFlags. А ваша реализация напрямую запрещает синглтону быть синглтоном. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 19:20 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, кхмм для того что бы понять что такое BindingFlags нужно прочитать http://msdn.microsoft.com/ru-ru/library/system.reflection.bindingflags.aspx] http://msdn.microsoft.com/ru-ru/library/system.reflection.bindingflags.aspx для того что бы понять type.GetConstructor мне нужно прочитать http://msdn.microsoft.com/ru-ru/library/h93ya84h.aspx] http://msdn.microsoft.com/ru-ru/library/h93ya84h.aspx знаете это не слабое чтение с неслабым обьемом кода... и это мне нужно что бы понять 1!!! строчку!!! кода!!! ВЫ ЧТО ВЫ ПРЕДЛАГАЕТЕ ПОДДЕРЖИВАТЬ? за такое отрывают руки именно из-за того что для того чтобы ПОНЯТЬ как работает эта гребаная строчка приходиться лопатить кучу ссылок гугла и MSDN ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 19:28 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
а моя реализация "всего лишь" требует наличия у TClass открытого конструктора, который по умолчанию прописываеться в 95% классов, и это ОЧЕНЬ большое приступление , а ваш код не.. он абсолютно прозрачен для понимания и поддержки ну подумаешь там пару раз в гугл слазить на MSDN пару статеек почитать... делов то.... а вот открытый конструктор это да... это страшно ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 19:32 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchВасилий Викторович, Она ищет конструктор экземпляра без параметров с не-публичным модификатором доступа. Я хз насчет нескольких дней, достаточно глянуть на метод GetConstructor и перечисление BindingFlags. А ваша реализация напрямую запрещает синглтону быть синглтоном.Каким образом запрещает-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 19:36 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
А, я понял в чём проблема. ТС хочет одного: чтобы везде в коде, где он вызвал Singleton<MyClass>.Instance, он получил бы один и тотже экземпляр типа MyClass. А там, где он в коде написано new MyClass(), он получил бы разные экземпляры. А ему говорят, что нельзя такого хотеть. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 19:43 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, Теперь понятно, вы боитесь текста больше чем из 3 строчек.. ) Ну с этим я бороться не в силах) P.S. А МС то и не знает, что можно разрешить создавать экземпляры Dispatcher . Вы бы их просветили что у всех классов прописывается открытый конструктор по-умолчанию, а то мужики то не знают))) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 19:48 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Можно конечно. Ему говорят что разработчик может сознательно захотеть запретить создавать новый экземпляр, а он отвечает что 95% классов с открытым конструктором не могут ошибаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 19:49 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Таким что требует у класса открытый конструктор, и, соответсвенно, оставляет на откуп дяде Васе, создаст он новый экземпляр или нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 19:50 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, Таким что требует у класса открытый конструктор, и, соответсвенно, оставляет на откуп дяде Васе, создаст он новый экземпляр или нет.А реализация на вики требует наличия у класса НЕ открытого конструктора без параметров. Получается тоже напрямую запрещает синглтону быть синглтоном? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 20:00 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, да я боюсь , боюсь... жена и ребенок не требуют моего внимания и времени, я должен конечно убить как минимум пару вечеров чтобы понять а КАК ЖЕ работает эта гребаная, ну или аналогичная ей, строчка кода чтобы иметь возможность туда внести изменения при необходимости, дорогой мой помимо КОДА И КОМПЬЮТЕРА СУЩЕСТВУЕТ И ДРУГОЙ МИР!!! P. S. пишите код настолько ясно и понятно на сколько это возможно, а рефлексия ... этому не способствует ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 20:02 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Я 10 раз пишу, добавьте к ней | BindingFlags.Public... А еще лучше, замените рефлексию вот этим: private static readonly S instance = Activator.CreateInstance(typeof(S), nonPublic: true) as S; ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 20:03 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANAА, я понял в чём проблема. ТС хочет одного: чтобы везде в коде, где он вызвал Singleton<MyClass>.Instance, он получил бы один и тотже экземпляр типа MyClass. А там, где он в коде написано new MyClass(), он получил бы разные экземпляры. А ему говорят, что нельзя такого хотеть. В принципе такой подход я не рассматривал... но тоже оригинально :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 20:05 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий ВикторовичLelouch, да я боюсь , боюсь... жена и ребенок не требуют моего внимания и времени, я должен конечно убить как минимум пару вечеров чтобы понять а КАК ЖЕ работает эта гребаная, ну или аналогичная ей, строчка кода чтобы иметь возможность туда внести изменения при необходимости, дорогой мой помимо КОДА И КОМПЬЮТЕРА СУЩЕСТВУЕТ И ДРУГОЙ МИР!!! P. S. пишите код настолько ясно и понятно на сколько это возможно, а рефлексия ... этому не способствует Зато этому видимо очень способствует добавление способа выстрела себе в ногу путем создания экземпляра класса, который "внезапно" по вашей задумке является синглтоном. Хотите терять время для общения с женой и детьми на поддержку клиентов - ваше право) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 20:06 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, ну зачем так мрачно то , клиентам не нужно знать КАК именно РЕШАЮТЬСЯ их задачи им нужен готовый РЕЗУЛЬТАТ :), а всю обвертку из десятков и сотен тысяч строк кода им не нужно показывать :), не... кто хочет тот пускай читает исходники я ж не запрещаю... но поверьте моему опыту им это нафиг не сдалось, да и баги есть были и будут всегда, не один человек от этого не застрахован, а по сути вопроса... если я вызову Singleton<TClass>.Instance у него будет поведение такое же как и предпологается у сингелтона :), и все ваши вопли о открытом конструкторе уходят в никуда, а если кто то будет использовать мой код :) ну пусть перед этим читает документацию по коду, и не пугается открытых конструкторов у TClass ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 20:13 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchВасилий ВикторовичLelouch, да я боюсь , боюсь... жена и ребенок не требуют моего внимания и времени, я должен конечно убить как минимум пару вечеров чтобы понять а КАК ЖЕ работает эта гребаная, ну или аналогичная ей, строчка кода чтобы иметь возможность туда внести изменения при необходимости, дорогой мой помимо КОДА И КОМПЬЮТЕРА СУЩЕСТВУЕТ И ДРУГОЙ МИР!!! P. S. пишите код настолько ясно и понятно на сколько это возможно, а рефлексия ... этому не способствует Зато этому видимо очень способствует добавление способа выстрела себе в ногу путем создания экземпляра класса, который "внезапно" по вашей задумке является синглтоном. Хотите терять время для общения с женой и детьми на поддержку клиентов - ваше право) и всеже для вас рефлексия - это серебряная пуля от всех проблем... мне вас жаль ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 20:15 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Во-первых, вы можете выпускать и библиотеки, я откуда знаю сферу ваших занятий? Во-вторых, ок, не клиент, а новый сотрудник, который не ожидает такого поведения от Синглтона. В-третьих, вот вариант без рефлексии: Код: c# 1.
Или у вас все, что выходит за рамки new MyClass() - уже избыточно? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 20:16 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, А мне вас, такие проблемы со зрением иметь.. (еще на 1й странице сказал что не люблю рефлексию. Да и читать видимо тяжело, раз 2 страницы МСДН вызывают панику. Заодно и просмотрели способ через Activator в 1 посте на странице) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 20:18 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий ВикторовичLelouch, да я боюсь , боюсь... жена и ребенок не требуют моего внимания и времени, я должен конечно убить как минимум пару вечеров чтобы понять а КАК ЖЕ работает эта гребаная, ну или аналогичная ей, строчка кода чтобы иметь возможность туда внести изменения при необходимости, дорогой мой помимо КОДА И КОМПЬЮТЕРА СУЩЕСТВУЕТ И ДРУГОЙ МИР!!! P. S. пишите код настолько ясно и понятно на сколько это возможно, а рефлексия ... этому не способствует Правильно написаный код, редко нуждается в исправлении и этим экономит время Неправильно написаный, является причиной багов, частенько трудно диагностируемых (это я о анти-синглтоне, с открытым конструктором) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 20:22 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий ВикторовичLelouch, ну зачем так мрачно то , клиентам не нужно знать КАК именно РЕШАЮТЬСЯ их задачи им нужен готовый РЕЗУЛЬТАТ :), а всю обвертку из десятков и сотен тысяч строк кода им не нужно показывать :), не... кто хочет тот пускай читает исходники я ж не запрещаю... но поверьте моему опыту им это нафиг не сдалось, да и баги есть были и будут всегда, не один человек от этого не застрахован, а по сути вопроса... если я вызову Singleton<TClass>.Instance у него будет поведение такое же как и предпологается у сингелтона :), и все ваши вопли о открытом конструкторе уходят в никуда, а если кто то будет использовать мой код :) ну пусть перед этим читает документацию по коду, и не пугается открытых конструкторов у TClass вы совсем не понимаете? сказано же выстрел себе в ногу , а не клиенту ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 20:24 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, против Activator.CreateInstance - я не имею ничего, но вот nonPublic:true явно показывает относиться к чему относиться Activator.CreateInstance, и не надо ля - ля про то что он относиться к пространству имен System, да относиться и что с того ?от перемены сум слагаемых сумма не меняется и рефлексией от этого он быть не перестает :) я вам говорил не про пространство имен System.Reflection а про принципиальный подход, а System.Reflection это просто инструменты, как и всеми инструментами им нужно уметь пользоваться!!! Повторюсь еще раз Рефлексия в данном случае НЕ ПРЕМЕНИМА!! так как тянет за собой пласт не нужных проблем!! Хотя что вам расказывать вы же апологет.... серебряной пули ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 20:27 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
pation, а ты попробуй изменить подход к шаблонам проектирования :) вдруг понравиться, вдруг поймешь что это не истина в последней инстанции, (черт... чуствую себя змеем искусителем ) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 20:30 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, Рефлексия неприемлема потому что Василий Викторович ее не осилил) Ок. Я так думаю разговаривать про варианты сделать тоже самое через IoC контейнеры тоже лишнее, ведь они, сволочи, сложно устроены и тут избыточны (c). P.S. Про строчку, использующую рефлексию Вы говорили, что ее сложно понять и поддерживать. Видимо строчку с активатором тоже сложно понять и поддерживать(мне хватило саммари прочесть - nonPublic = true позволяет использование и закрытого и открытого конструкторов). Так что однозначный вывод - единственный правильный способ, это тот, который вы представили. А то что он вообще не позволяет создать синглтон - это нормально, важнее иметь возможность ничего не читать и не напрягать свою голову, забитую видимо детьми и женой. Я не против такого распределения времени, но смысл вашего поста можно свести к "зацените какой крутой способ, а те, кто говорит что он плох просто мне завидуют". P.P.S. Съезд на семью и занятость, неспособность посмотреть ссылку на мсдн, "боязнь" перед использованием рефлексии.... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 20:38 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторовичpation, а ты попробуй изменить подход к шаблонам проектирования :) вдруг понравиться, вдруг поймешь что это не истина в последней инстанции, (черт... чуствую себя змеем искусителем ) откуда ты знаешь какой у меня к ним подход? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 21:07 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, IMHO, Вам пытаются доказать, что шаблон Singleton не подразумевает наличия public конструктора, т.к. это в корне отличается от задумки именно ЭТОГО ШАБЛОНА, а Вы упорно пытаетесь доказать, что мир развивается, а посему х..рить шаблон можно, но пусть он при этом обзывается Singleton и используется как Singleton... И не лень было лопатить три страницы переливая из пустого в порожнее? Опять-же введя public конструктор, Вы порождаете ВОЗМОЖНОСТЬ создания второго экземпляра объекта и тем самым, опять-же, перечёркиваете идею именно этого шаблона... Ну если так хочется именно такое поведение, то не называйте это Singleton, назовите SemiSingleton... Тогда будет более понятно, что это такой хитровыкрученный класс, который вроде как и синглтон, но в то-же время имеет открытый конструктор (вот где в данном случае для шаблона синглтон, выстрел себе в ногу), который не желательно использовать ( и спрашивается, а занафига тогда он, этот открытый конструктор нужен, если его использовать нельзя ??? ). В общем, отвечу на поставленный вопрос так: имеет, покуда голова у того кто пользует такой шаблон на месте и абсолютно чётко осознаёт, что кто-нибудь (возможно даже из его команды) не сделает просто: Код: c# 1. 2. 3.
вместо: Код: c# 1. 2. 3.
Так что если есть желание херить шаблон - вперёд, но только не говорите, что это Singleton и будьте готовы к беготне за жуками в будущем... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 21:21 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Alex Kuznetsov, скажите мне, что означает следующая строчка из кода ТС: Код: c# 1.
Каким образом получится создать new Singleton<MySuperClass>()? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 21:42 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Синглтоном должен вообще-то быть MyClass. В примере на вики например, чтобы не смущать, используют наследование. P.S. Поясните мне смысл такого "синглтона", который вы только что нарисовали? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 21:48 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Вообще, смысл этих примеров с генериками в том, чтобы получить ссылку на единственный объект параметра типа (T, TSource, etc), а не на сам Singleton<TSource>. Из кода это не очевидно? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 21:53 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, берём код с вики и пишем: Код: 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. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66.
И кто кому что должен? И что, и где очевидно? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 22:06 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchВообще, смысл этих примеров с генериками в том, чтобы получить ссылку на единственный объект параметра типа (T, TSource, etc), а не на сам Singleton<TSource>. Из кода это не очевидно?Смотрите мой код выше. Вызов Singleton<MyClass>.Instance - это не ссылка на единственный объект параметра типа MyClass? Если конструктор типа MyClass сделать публичным, а реализацию Singleton<T> с вики заменить на реализацию ТС, ссылка будет не на единственный объект? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 22:09 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, А что в вашем примере MyClass синглтон, да? Статический метод Create вас не смущает? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 22:39 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, А что в вашем примере MyClass синглтон, да? Статический метод Create вас не смущает?Нет, MyClass не синглтон. Статический метод Create меня не смущает. Вы мне ответьте на мои вопросы, будьте любезны. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 23:02 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, А Вы, непонимающий вы наш, сначала ДО КОНЦА пример на вики прочитайте. Может наконец поймете что должно быть синглтоном: Код: 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. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
На всякий случай сообщаю, что конец примера находится под комментарием "Использование Singleton" ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 23:14 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Ответ на ваш вопрос - ни то ни то не будет синглтоном ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 23:17 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, и где использование-то, Вы видите? Где вызов TestProc()? Чем отличается вызов TestClass.Instance от Singleton<TestClass>.Instance? Зачем наследовать TestClass от Singleton<TestClass>? В моём примере я использовал код с вики так Singleton<MyClass>.Instance. Это означает, что я использовал не Singleton? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 23:22 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchОтвет на ваш вопрос - ни то ни то не будет синглтономА ссылка-то, ссылка будет на единственный объект параметра типа MyClass? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 23:25 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, уж поверьте мне Рефлексии я не боюсь :), просто это не оправдано глупо ее так использовать, вот кое что из старого моего проекта чтобы кто - не кричал о том что я боюсь рефлексии , надеюсь слышали про формат медицинских документов HL7? :) Код: 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. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84.
Просто ещераз в n - раз повторюсь Рефлексия не есть серебряная пуля :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 23:29 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий ВикторовичХочеться узнать мнение сообщества :) имеет ли право существовать такой подход?:) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
это не синглтон. С тем же успехом сделайте словарь типа обджект и заусньте туда любой объект и назовите это все синглтонам по типу(например ключь типа Type). Бред же ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 23:31 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Ссылка будет одна и таже, синглтоном оно от этого не станет. skyANALelouch, и где использование-то, Вы видите? Где вызов TestProc()? Чем отличается вызов TestClass.Instance от Singleton<TestClass>.Instance? Зачем наследовать TestClass от Singleton<TestClass>? В моём примере я использовал код с вики так Singleton<MyClass>.Instance. Это означает, что я использовал не Singleton? То есть, даже после внимательного прочтения, вы не поняли, что состояние, которое должен содержать синглтон, находится в TestClass? И именно он должен быть синглтоном. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 23:32 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, и смысл этого кода? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 23:38 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, Ссылка будет одна и таже, синглтоном оно от этого не станет. skyANALelouch, и где использование-то, Вы видите? Где вызов TestProc()? Чем отличается вызов TestClass.Instance от Singleton<TestClass>.Instance? Зачем наследовать TestClass от Singleton<TestClass>? В моём примере я использовал код с вики так Singleton<MyClass>.Instance. Это означает, что я использовал не Singleton? То есть, даже после внимательного прочтения, вы не поняли, что состояние, которое должен содержать синглтон, находится в TestClass? И именно он должен быть синглтоном.Напишите код, получающий это состояние. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 23:46 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, мдя...а почему вы считаете что ИМЕННО TClass ну просто ОБЯЗАН реализовывать обвязку сингелтона? почему мой вариант вас смущает? только то что все вокруг с упорством барана твердят о том что у сингелтона ну просто ОБЯЗАН БЫТЬ закрытый конструктор??? мдя... Знаете перечитайте ка ещераз GoF и Фаулера, может тогда мозги в порядок приведете, в частности в GoF сказано что они предлагают РЕКОМЕНДОВАННЫЙ СПИСОК РЕШЕНИЙ ТИПИЧНЫХ ЗАДАЧ , выделил жирным шрифтом спецально для Вас кстати не забываем и про Утиную Типизацию которая гласит что «Если оно выглядит как утка, плавает как утка и крякает как утка, то это, наверное, и есть утка» , а мой Singelton<TClass>.Instance ну ни каким поведением от синглтона не отличается и КАЖДЫЙ РАЗ когда вы запросите Singelton<TClass>.Instance вы получите ссылку на ОДИН И ТОТ ЖЕ ОБЬ ЕКТ :) спорить будем дальше? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 23:47 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, о смысл этого кода а вы присмотритесь внимательно может и найдете что то удивительное ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 23:48 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, по всей видимости для камрада Lelouch TestClass.Instance и Singleton<TestClass>.Instance - это два разных состояния. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 23:52 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
SkyANA Нет конечно. А для вас класс с публичным конструктором - Singleton? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:01 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, Вы получаете список свойств "сегмента", тип которых является Generic`ом и они помечены кастомным атрибутом UsedAttribute. (Судя по дальнейшему использованию, это коллекции?). После чего берете все статические поля, помеченные атрибутом FunctorAttribute (возможно, это ф-ии, берущие элемент сегмента по номеру?), + "создаете" GenericMethod из ForeachCollection, передавая ему в качестве параметров типа Тип элементов коллекции TValue и выходной тип functor'a. Что делает SetFieldValue не очень видно, кроме того, что она в свою очередь вызывает ForeachCollection для дочерних коллекций сегмента. Я думаю что где то я ошибаюсь, но всего кода не видно в любом случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:01 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Что из этого Singleton? Код: 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. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:02 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Test1 или Test2? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:03 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, А вы не умеете читать определение авторSingleton - Гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа. Существенно то, что можно пользоваться именно экземпляром класса, так как при этом во многих случаях становится доступной более широкая функциональность. Например, к описанным компонентам класса можно обращаться через интерфейс, если такая возможность поддерживается языком. Что, ваш код Гарантирует, что MyClass имеет 1 и только 1 экземпляр: ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:05 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Ваш код выполняет только 2е - предоставляет глобальную точку доступа, единственность экземпляра MyClass не гарантируется ни разу. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:06 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, напишите код, что создаёт два различных экземпляра типа Singleton<MyClass>. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:13 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, А ответ на вопрос какой? (c) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:15 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, слона вы таки и не приметили Код: c# 1. 2. 3. 4.
указываю для невнимательных :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:16 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, Вот в этом и опасность смешивания шаблонов проектирования с реальными классами, реальная логика шаблона размазываеться по всему классу и так с наскока не скажешь толь фабрика пред тобой то ли сингелтон ... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:20 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Я уже несколько раз пытался донести до вас мысль, что синглтоном в примере на вики является TestClass. В единственности Singleton<TestClass> нет никакого смысла , потому что все, что он предоставляет - доступ к эвземпляру TestClass. Если TestClass управляет каким то состоянием, которое должно быть общим, например, для всех нитей приложения, то монопенисуально, что Singleton<TestClass> - единственный. Каждая нить (при криворуком программисте) может создать себе свой экземпляр TestClass и взять состояние оттуда. То что при этом оно НИКАК не будет относится к общему состоянию нитей - это нормально? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:20 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, Если таких свойств или методов нет, рекурсия завершается. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:21 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, А ответ на вопрос какой? (c) Код: c# 1.
И где Ваш пример использования из вики гарантирует единственность экземпляра? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:21 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, оставьте, вы не достучитесь) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:24 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchЯ уже несколько раз пытался донести до вас мысль, что синглтоном в примере на вики является TestClass. В единственности Singleton<TestClass> нет никакого смысла , потому что все, что он предоставляет - доступ к эвземпляру TestClass. Если TestClass управляет каким то состоянием, которое должно быть общим, например, для всех нитей приложения, то монопенисуально, что Singleton<TestClass> - единственный. Каждая нить (при криворуком программисте) может создать себе свой экземпляр TestClass и взять состояние оттуда. То что при этом оно НИКАК не будет относится к общему состоянию нитей - это нормально?Бла-бла-бла. Смотрим код выше. Вот я криворукий программист не нашёл у класса TestClass публичного конструктора и заюзал Activator. Где Вы что гарантировали? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:24 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANAБла-бла-бла. Смотрим код выше. Вот я криворукий программист не нашёл у класса TestClass публичного конструктора и заюзал Activator. Где Вы что гарантировали? демогогия ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:26 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, От этого шаблон не меняется. И все эти GoF и Фаулеры говорят не то что "называйте синглтоном, даже если оно ведет себя как фабрика", а то что вы должны применять шаблон как вам удобно. Просто не надо называть это реализацией шаблона. Это что то типа "реализация шаблона, обеспечивающего использование единственного объекта, а так же возможность их создания при необходимости применительно к моей задаче". Похожее поведение есть и у МС, например HttpContext имеет свойство Current, но так же позволяет создавать новые экземпляры. Кстати он не является Singleton`ом в любом случае, потому что у каждого запроса он свой. Конкретно ваш пример плох только тем, что если мне действительно потребуется Singleton, у которого нет возможности создать еще 1 экземпляр, то сделать это я не смогу. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:29 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Denis., до SkyANA да. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:29 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, не огорчайтесь на нашего друга Lelouch, он у нас любит Рефлексию и ни одним взглядом не может определить в более или менее сложном коде так горяче обсуждаемый паттерн , а предоставленный код с немалой изящьностью использует и Singleton и Reflection и рекурсию и Linq Так вот что я хочу сказать... Lelouch и все кто тебя поддерживали :) вы хотя бы, работали с кодом из пару десятков тысяч строк?:) когда ты понимаешь что это никаким рефакторингом не лечиться, (ибо рефакторить не дадут ни времени ни средств) :(, а от тебя требуют новой, ну просто вот так нужной функциональности, вот после такого опыта понимаешь что писать нужно как можно меньше и как можно понятнее, и если шаблон не ведет проектирования себя так нужно значит шаблон нужно менять, слить вместе 2 или 3 шаблона, но при этом оставив понятность и простоту кода, ну а то что в данном случае придется чем то поступиться... ну что ж так тому и быть ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:34 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, Ответ "да" вас устроит? Вы на пред. странице мое сообщение прочитали? P.S. я вам не друг. я просто переписываюсь с вами на форуме. P.P.S. я юзаю IoC контейнеры, в них сделать Singleton фабрикой дело 1 настройки ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:37 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Ещё раз читаем вики:ЦельГарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа. Первое достигается засчёт: Код: c# 1. 2. 3.
Последнее - это свойство: Код: c# 1. 2. 3. 4.
TestClass не обязан быть наследником от Singleton<TestClass>. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:40 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, мне вас жаль , вы сидите в шаблонном мышлении при котором шаг влево шаг в право это расстрел, рефлексия и щаблоны проектирования захватили ваш мозг на столько что вы неможите взглянуть на проблему иначе, с другой стороны, точки зрения, покрутить проблему так сяк или сверху вниз.... говорю ж умер в вас "ленивый" программист, вы все делает по учебнику :) инструмент владеет вами а не вы инструментом ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:40 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
А да, Одиночкой там является только список Property....Info...., сам Segment вообще ни разу не одиночка (судя по приведенному коду, что там у вас в предках я хз) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:41 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchP.P.S. я юзаю IoC контейнеры, в них сделать Singleton фабрикой дело 1 настройкиОпа на. И даже не надо наследовать свои классы от базового Singleton<T>? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:41 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий ВикторовичLelouch, мне вас жаль , вы сидите в шаблонном мышлении при котором шаг влево шаг в право это расстрел, рефлексия и щаблоны проектирования захватили ваш мозг на столько что вы неможите взглянуть на проблему иначе, с другой стороны, точки зрения, покрутить проблему так сяк или сверху вниз.... говорю ж умер в вас "ленивый" программист, вы все делает по учебнику :) инструмент владеет вами а не вы инструментом Определение синглтона с вашей точки зрения дайте. Тогда будет предмет спора. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:42 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, про вас все понятно, видимо устали на работе. Или забыли как читать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:42 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, А мне жаль вас, очень. Честно) Но в общем удачи и дальше думать что реализовали Singleton ) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:43 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, Вы то вообще ни фига не реализовали, и думаю не смотрели реализацию Singleton в IoC контейнере, которым пользуетесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:45 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, а кто вам сказал что Element<TSegmentValue, TSegment> в моем коде ОБЯЗАН БЫТЬ сингелтоном?? :) мне хватает того что я через SingletonCreator.PropertyListInfoMethods получаю список свойств объекта 1 раз :) а то что этот SingletonCreator немножичко закрыт ну значит внешним классам нечего знать о его существовании :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:46 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Denis., Я так понимаю это то, на что есть глобальная ссылка, которую нельзя изменить. то есть: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
и после инициализации SuperSinglton.Instance = new MyClass(); MyClass по мановению волшебной палочки становится синглтоном. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:47 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
По его мнению, это, я так понимаю*... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:48 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, в Unity это делается с помощью LifetimeManager, еще bla bla bla будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:49 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, в Unity это делается с помощью LifetimeManager, еще bla bla bla будет?Хотелось ещё узнать, от чего Вам приходится наследовать свои классы, чтобы сделать Singleton было делом 1 настройки. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:52 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, ну наш друг Lelouch знает о такой интересной технологии как инверсия контроля , все остальное не являеться достойным внимания гуру :), а то что для того чтобы открыть что то новое нужно делать эксперементы.... так это же невозможно в его вселенной :) интересно а как применим шаблон Singelton не в С#/C++/Java а на том же FAsm :)? ну или LISP или PROLOG :) а как на счет Forth?:), Lelouch знаешь если что то идет вразрез с мнением класиков это не значит что это плохое это означает что класики где-то ошибались, ну или я ошибаюсь но нести ответственность за это тоже мне :), но пойми «Если оно выглядит как утка, плавает как утка и крякает как утка, то это, наверное, и есть утка» а так как мой код ведет себя как сингелтон значит это и есть сингелтон а то что TClass есть открытый конструктор... ну чтож значит так тому и быть :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:57 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchПо его мнению, это, я так понимаю*... ну интересно как он это сформулирует. по его пониманию это ссылка на объект присвоенная статическому классу которую нельзя изменить. Тогда спор сводится к тому можно так делать или нет - если очень хочется то можно, но к синглтону это отношения не имеет никакого. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:57 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
вы шутите? Синглтон: Код: xml 1. 2. 3.
Фабрика: Код: xml 1. 2. 3.
[SRC XML][/SRC] ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 00:58 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, знаете если мне что то говорит кто то из Харькова или написано классиками, то пожалуй классики чуть чуть повесомее. эдак на бесконечность) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:00 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, Можите проверить код :) Код: 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. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47.
ниже результаты этого кода, как показывают тесты все же мой код это синглетон, и никуда вам от этого не деться и он даже потокобезопасный :), а насчет классиков... кто знает может лет через 30 МЫ будем классиками :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:12 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, интересно теперь то вы хоть признаете что вы не правы?:) и что самый первый мой пост являеться именно реализацией шаблона Singlton? :) или смелости не хватит?:) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:14 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, да какой это Singleton? Вот если в консоль вместо Singleton<Test>.Instance.GetHashCode() будет выводится Test.Instance.GetHashCode() , вот это будет Singleton! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:16 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#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. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
Я только что выстрелил себе в ногу, ваша реализация "синглтона" этому ни разу не помешала. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:18 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Синглтоном это будет если я не смогу создать Test ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:19 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, Вы даже не поняли что такое Singleton, признайте это) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:19 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, ... да уж теоретиков тут много а взять и проверить ну этоже нас недостойно :) мы же думаем о высоких материях Рефлексии и Инверсиии контроля, читаем классиков... все такие высокие :), а тут бац ктото из Харькова приходит и щелкает больно по носу, интересно наш друг Lelouch будет продолжать дискусию или сдулся под гнетом неопровержимых улик?:) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:20 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, приходит, и не знаешь, плакать над его знаниями или смеяться, вы хотели сказать?) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:22 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchВасилий Викторович, приходит, и не знаешь, плакать над его знаниями или смеяться, вы хотели сказать?) да тролит он, очевидно уже:) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:24 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Denis., судя по примеру он до сих пор свято верит в singleton. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:25 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, и ??? ну создали вы обьект класса Test не используя Singelton<Test>.Instance ну и несите за него ответственость чего я ее нести должен? Вы сами ССЗБ и я тут не причем:) вот если бы Singelton<Test>.Instance.GetHashCode() в разных потоках был разным.. тогда да... это был бы не сингелтон ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:25 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, Синглтоном это будет если я не смогу создать Test ))) это будет наидермовейшим синглтоном так как я могу туда засунуть даже класс с открытым конструктром, даже пусть у тест он закрытый ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:26 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, Понятно, для truе кодеров из Харькова, не осиливших даже вики, синглтоном является только то, что называется Singleton) Спокойной ночи) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:28 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Denis., они пусть хотя бы это продемонстрируют ((( ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:29 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Блин специально постараюсь найти электронную почту кого нибудь из GoF и озадачить этим вопросом :) если получиться отпишусь в теме аж самому стало интересно что они ответят :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:29 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchDenis., они пусть хотя бы это продемонстрируют ((( смайлы не в ту сторону. Весело же ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:30 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Специально для skyANA, в примере на вики вы можете создать экземпляр TestClass без активатора, рефлексии и т.д.? Хотя я думаю все равно не поймете... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:33 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Denis.LelouchskyANA, Синглтоном это будет если я не смогу создать Test ))) это будет наидермовейшим синглтоном так как я могу туда засунуть даже класс с открытым конструктром, даже пусть у тест он закрытыйПолучается что у Lelouch пользуется наидерьмовейшим синглтоном, т.к. то что он пишет в конфиге не запрещает никому написать new Logger() . ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:33 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Кроме как обращением к TestClass.Instance или Singleton<TestClass>.Instance * ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:34 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, это запрещает тот факт, что реализация имеет модификатор доступа internal, и без рефлексии ее не достать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:35 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
грустно все это, от костности мышления некоторых личностей, никто так и не понял что следуя той же правилу утиной типизации это есть также сингелтон, а то что можно создать несколько экземпляров TClass... это необходимость с которой можно помериться, ведь самое главное что Singelton<TClass>.Instance ведет себя как положено сингелтону и в этом вся суть.... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:35 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторовичгрустно все это, от костности мышления некоторых личностей, никто так и не понял что следуя той же правилу утиной типизации это есть также сингелтон, а то что можно создать несколько экземпляров TClass... это необходимость с которой можно помериться, ведь самое главное что Singelton<TClass>.Instance ведет себя как положено сингелтону и в этом вся суть.... а ка положено вести себя синглтону? В чем суть его? Коротко, если можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:39 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, это запрещает тот факт, что реализация имеет модификатор доступа internal , и без рефлексии ее не достать.Ну ну. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:40 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, что "ну ну"? реализация лежит в отдельной сборке, Friend сборки у нее не прописаны? Как еще можно оттуда достать тип? Дизассемблировать сборку? это уже не тривиальные способы стрельбы по конечностям. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:44 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, в любом классе, отличном от Logger, находящемя в том же пространстве имён, можно написать new Logger() . ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:48 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Denis.Василий Викторовичгрустно все это, от костности мышления некоторых личностей, никто так и не понял что следуя той же правилу утиной типизации это есть также сингелтон, а то что можно создать несколько экземпляров TClass... это необходимость с которой можно помериться, ведь самое главное что Singelton<TClass>.Instance ведет себя как положено сингелтону и в этом вся суть.... а ка положено вести себя синглтону? В чем суть его? Коротко, если можно. :) а он и ведет как положено сингелтону, предоставляет доступ к единственному экземпляру класса TClass, который ему доступен :) а то что вы можете создать экземпляр TClass это ваша ответственность а не моя :) я вам интерфейс глобальной точки предоставил вот и пользуйтесь а все остальное меня не касаеться, если вы хотите еще один экземпляр класса TClass пожалуйста почему я должен вас ограничивать? это ваш экземпляр и ваша ответственность, я не царь и не бог что бы вам что то указывать, а то что это по вашему мнению не допустимо ну значит вы ССЗБ ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:49 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, руководство по программированию на C# с вами не согласно: MSDNinternal Доступ к типу или члену возможен из любого кода в той же сборке, но не из другой сборки. http://msdn.microsoft.com/ru-ru/library/ms173121.aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:49 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий ВикторовичDenis.пропущено... а ка положено вести себя синглтону? В чем суть его? Коротко, если можно. :) а он и ведет как положено сингелтону, предоставляет доступ к единственному экземпляру класса TClass, который ему доступен :) а то что вы можете создать экземпляр TClass это ваша ответственность а не моя :) я вам интерфейс глобальной точки предоставил вот и пользуйтесь а все остальное меня не касаеться, если вы хотите еще один экземпляр класса TClass пожалуйста почему я должен вас ограничивать? это ваш экземпляр и ваша ответственность, я не царь и не бог что бы вам что то указывать, а то что это по вашему мнению не допустимо ну значит вы ССЗБ таким образом верно ли я понимаю что любое поле доступное только для чтения синглтон? По вашему описанию подходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:54 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, руководство по программированию на C# с вами не согласно: MSDNinternal Доступ к типу или члену возможен из любого кода в той же сборке, но не из другой сборки. http://msdn.microsoft.com/ru-ru/library/ms173121.aspx Да, ошибся. В любом классе, отличном от Logger, находящемя в той же сборке, можно написать new Logger() . ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:56 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, имея ввиду что сборка с Logger поставляется в составе продукта (она подписана ключом издателя заодно), и, месяцев 5 назад, пока я там работал, я следил за ее состоянием, поверите ли вы мне, что на тот момент там таких вызовов не было? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:58 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Denis., а что здесь есть set?:) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Поле для чтения это просто функция которая возвращает обьект заданого типа, будет ли при этом этот объект сингелтоном вопрос спорный :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 01:59 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, имея ввиду что сборка с Logger поставляется в составе продукта (она подписана ключом издателя заодно), и, месяцев 5 назад, пока я там работал, я следил за ее состоянием, поверите ли вы мне, что на тот момент там таких вызовов не было?Поверю. Но что запретит новому человеку, кто будет следить за сборкой, написать new Logger() ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:02 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий ВикторовичDenis., а что здесь есть set?:) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Поле для чтения это просто функция которая возвращает обьект заданого типа, будет ли при этом этот объект сингелтоном вопрос спорный :) в вашем определении вы ничего не говорили про сет. Поясните что должно быть с сетом чтобы получился синглтон? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:06 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Доступ к ее коду новоприбывший Вася Пупкин не имеет. Она используется в нескольких проектах, туда, в мое время, имело доступ 3 человека, 1 - только на чтение. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:12 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Denis., Шутку юмора оценил :), но ты видимо приписочку в конце кода не прочитал, Поле для чтения (get) это просто функция которая возвращает обьект заданого типа, будет ли при этом этот объект сингелтоном вопрос спорный :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:15 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, кхм... а если вы пару таких (или аналогичных) проектов на githab'е выложите? тоже отвечать за каждый чих Петра Семеновича будете? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:17 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, Доступ к ее коду новоприбывший Вася Пупкин не имеет. Она используется в нескольких проектах, туда, в мое время, имело доступ 3 человека, 1 - только на чтение.То есть запрет чисто организационный, ясно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:17 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Вот так наш милый друг Lelouch решает программистские проблемы на запрет создания экземпляров сингелтона :) не код корректный пишет а бюрократией балуется, "ты туда не лезь, а то мы сделаем тебе атата" ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:20 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, никакого юмора, ты сказал что синглтон это: предоставляет доступ к единственному экземпляру класса TClass, который ему доступен. я указал что таким поведением обладает любое неизменяемое поле. ты спросил что есть сет. я спрашиваю причем тут сет? Если он важен в определении синглтона просьба добавить его и написать еще раз что такое синглтон с твоей точки зрения(с учётом сета) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:21 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4.
Сколько бы форм типа MyForm не было открыто someInstance ссылается на один и тотже экземпляр типа MyClass. Но Singleton<MyClass> - это не синглтон. Забавно получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:21 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, Нет, не буду принимать pull реквесты от других людей, кроме вариантов Code Review / большого доверия. Если кто-то начнет использовать форк - не моя проблема. Своим "клиентам" я, соответственно, обеспечу минимальный шанс выстрелить себе в ногу. P.S. но это все теория, я не занимаюсь свободными библиотеками. Те что писал - только для использования в корпоративных проектах, на GitHub / CodePlex они скорее всего никогда не попадут. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:23 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Denis.я указал что таким поведением обладает любое неизменяемое поле.Смотрим сюда: Код: c# 1. 2. 3. 4.
и смотрим код выше. Чувствуем разницу? В обоих случаях поле неизменяемое. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:24 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Denis., потому как в указаной реализации сингелтона уже есть неизменяемый get если ты этого не заметил.... прости, и еще тебе ничего не говорит вот это?:) Код: c# 1.
вроде и поле доступно только для чтения да не совсем :) еще раз повторяю для НЕПОНЯТЛИВЫХ Код: c# 1.
это просто функция которая возвращает обьект заданого типа, будет ли при этом этот объект сингелтоном вопрос спорный :), может будет а может и нет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:26 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANADenis.я указал что таким поведением обладает любое неизменяемое поле.Смотрим сюда: Код: c# 1. 2. 3. 4.
и смотрим код выше. Чувствуем разницу? В обоих случаях поле неизменяемое. не чувствую. Делаем поле публичным. Удовлетворяет: "предоставляет доступ к единственному экземпляру класса TClass, который ему доступен."? да удовлетворяет. пытаюсь добиться внятного определения чтоб был предмет разговора. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:28 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Угу. Ньюфаг, поняв, что Singleton<MyClass>.Instance.GetResource(), вызываемый в BackgroudWorker работает медленно (из-за блокировок, например, при обращении к ресурсу), не подумав, создаст в нем новый экземпляр MyClass (ведь это не запрещено). Самое интересное, что это не приведет, скорее всего, к моментальному краху приложения, падать оно будет в зависимости от фазы луны и брачной активности тушканчиков. Да, он ССЗБ. Правда, лично я, за такую возможность, первым делом спросил у автора синглтона, что за фигню он создал. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:30 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий ВикторовичDenis., потому как в указаной реализации сингелтона уже есть неизменяемый get если ты этого не заметил.... прости, и еще тебе ничего не говорит вот это?:) Код: c# 1.
вроде и поле доступно только для чтения да не совсем :) еще раз повторяю для НЕПОНЯТЛИВЫХ Код: c# 1.
это просто функция которая возвращает обьект заданого типа, будет ли при этом этот объект сингелтоном вопрос спорный :), может будет а может и нет :) попробуйте собраться и еще раз. Коротко. Что такое синглтон в твоем понимании. Ты написал "предоставляет доступ к единственному экземпляру класса TClass, который ему доступен". Все еще считаешь это определение достаточным? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:31 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, ууу значит вы снимаете с себя ответственность если кто-то будет юзать форк вашей либы.... а тогда чем это отличается от того что я намеренно предостовляю интерфейс глобальной точки Singelton<TClass>.Instance и я не несу ответственности за то что если какой либо Петр Сергеевич "форкнет" мой класс (либу) и сделает TClass element = new TClass()?:) вот почему ваше дистанцирование от "форка" более правельное чем мое? Я так понимаю проблема в тех шорах и блоках что стоят у вас в голове или я не прав? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:32 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, в моем случае я "отвечаю" за ту библиотеку, которую предоставляю. Форк предоставляю не я, как я могу за него отвечать? Это все равно что Торвальдс будет отвечать на все сборки Линукс. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:35 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
дистрибутивы* ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:35 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
DenisТы написал "предоставляет доступ к единственному экземпляру класса TClass, который ему доступен". Все еще считаешь это определение достаточным? да я считаю так считаю ибо я предоставил глобальную точку доступа с единственным доступным для этой точки доступа экземпляром класса TClass к тому же потокобезопасным , на этом моя зона ответственности заканчиваеться и я не отвечаю за то что взбредет в голову какому нибудь Петру Сергеевичу, который создаст из моего класса TClass еще 1 экземпляр, он сам ССЗБ, пусть перед использованием читает документацию к тому что использует ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:37 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, Вот точно также я немогу отвечать за то что Вам в голову стукнет желание сделать еще 1 экземпляр класса TClass, единую точку доступа с единственным доступным экземпляром я вам предоставил? Singelton<TClass>.Instance- предоставил, а дальше не моя ответственность, ну и что с того что у TClass открытый конструктор? у 95% классов он открыт в той или иной степени ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:40 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий ВикторовичDenisТы написал "предоставляет доступ к единственному экземпляру класса TClass, который ему доступен". Все еще считаешь это определение достаточным? да я считаю так считаю ибо я предоставил глобальную точку доступа с единственным доступным для этой точки доступа экземпляром класса TClass к тому же потокобезопасным , на этом моя зона ответственности заканчиваеться и я не отвечаю за то что взбредет в голову какому нибудь Петру Сергеевичу, который создаст из моего класса TClass еще 1 экземпляр, он сам ССЗБ, пусть перед использованием читает документацию к тому что использует не могу написать код так как с телефона. Если я сделаю статический класс в котором сделаю поле некого типа инициализирую его в статическом конструкторе и предоставлю к нему только геттер это синглтон? Удовлетворяет твоему определению полностью. Синглтон? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:41 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, Угу. Ньюфаг, поняв, что Singleton<MyClass>.Instance.GetResource(), вызываемый в BackgroudWorker работает медленно (из-за блокировок, например, при обращении к ресурсу), не подумав, создаст в нем новый экземпляр MyClass (ведь это не запрещено). Самое интересное, что это не приведет, скорее всего, к моментальному краху приложения, падать оно будет в зависимости от фазы луны и брачной активности тушканчиков. Да, он ССЗБ. Правда, лично я, за такую возможность, первым делом спросил у автора синглтона, что за фигню он создал.О, переходим к практическому применению. Я например использую одну и туже сборку и в desktop, и в web. В desktop: Singlton<MyClass>.Instance, в web: new MyClass(). Круто будет, если MyClass вдруг станет MyClass : Singleton<MyClass>. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:43 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Denis., этого эксперемента не проводил, прав ты или нет утверждать не буду :) нужно посмотреть как отреагируют тесты :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:44 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, Вы, как автор библиотеки, назвав Singletonом то, что понимаете как Singleton только вы и примкнувший к вам Шипилов SkyANA, дали мне лишний способ выстрелить себе в ногу. Если, например, вы поставляете сборку без исходников и с плохой документацией, то, задолбавшись искать ошибку, я откажусь от нее в пользу решения, в котором не буду испытывать проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:45 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий ВикторовичDenis., этого эксперемента не проводил, прав ты или нет утверждать не буду :) нужно посмотреть как отреагируют тесты :) какого эксперимента? Какие тесты? В статическом классе поле доступное только для чтения инициализированное в конструкторе.о каких тестах речь идти может? Вы не можете менять поле, объект только один, глобально доступен. Синглтон? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:50 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, и что от этого изменится, кроме того, что с новой версией сборки ваш код перестанет компилироваться? вы вольны остаться на старой версии, или заменить вызовы new MyClass() на MyClass.Instance. BTW у МС например, как я писал выше, есть классы с таким поведением (есть Current, но можно создать новый экземпляр). Просто Singleton они не являются. Кстати, если произойдет такая замена, возможна ситуация, что MyClass перестал допускать возможность массового создания - то есть ваш код полностью валиден для старой версии сборки. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:51 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, а Вы так и не объяснили почему Singleton<MyClass> - это не синглтон. У него может быть только один экземпляр и к нему есть глобальная точка доступа - свойство Instance. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:52 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Denis.Василий Викторовичпропущено... да я считаю так считаю ибо я предоставил глобальную точку доступа с единственным доступным для этой точки доступа экземпляром класса TClass к тому же потокобезопасным , на этом моя зона ответственности заканчиваеться и я не отвечаю за то что взбредет в голову какому нибудь Петру Сергеевичу, который создаст из моего класса TClass еще 1 экземпляр, он сам ССЗБ, пусть перед использованием читает документацию к тому что использует не могу написать код так как с телефона. Если я сделаю статический класс в котором сделаю поле некого типа инициализирую его в статическом конструкторе и предоставлю к нему только геттер это синглтон? Удовлетворяет твоему определению полностью. Синглтон? немогу утверждать что это будет сингелтон в привычном понимании... но то что тесты выдают один и тот же GetHashCode() это факт ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:52 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchВасилий Викторович, Вы, как автор библиотеки, назвав Singletonом то, что понимаете как Singleton только вы и примкнувший к вам Шипилов SkyANA, дали мне лишний способ выстрелить себе в ногу. Если, например, вы поставляете сборку без исходников и с плохой документацией, то, задолбавшись искать ошибку, я откажусь от нее в пользу решения, в котором не буду испытывать проблем. это ваше право :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:52 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, и что от этого изменится, кроме того, что с новой версией сборки ваш код перестанет компилироваться? вы вольны остаться на старой версии, или заменить вызовы new MyClass() на MyClass.Instance .И пользователи web-приложения начнут ловить интереснейшие глюки ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:55 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Потому что на самом деле доступом к ресурсу, одному на все нити, управляет MyClass, а не Singleton<MyClass>. Если вы не запретите создавать свои экземпляры MyClass, кто-то может поиметь много трудновыявляемых проблем, если создаст его экземпляр, и начнет "общаться" с ресурсом через него, при том, что Ваши собственные ф-ии будут продолжать использовать Singleton<MyClass>. Для них ресурс будет синхронизирован, для кода этого "кого-то" нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:55 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, с чего бы? вы сборку на сервере без тестов поменяете? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:55 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Denis, Я знаю что статический клас не дает обратиться по указателю this (указатель сам на себя) но может вам в данном случае это и не нужно? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:56 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, "немогу утверждать что это будет сингелтон в привычном понимании... но то что тесты выдают один и тот же GetHashCode() это факт " что здесь несинглтоновского в привычном понимании? Ты сказал что такое синглтон. Код который я описал удовлетворяет твоему определению. Что здесь непривычного ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:58 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, или, например, у new MyClass() будет своя копия "ресурса" (например, список результатов вычисления), у Singleton<MyClass> своя. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:59 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Denis., :) хорошо я скажу что это сингелтон с ограничеными возможностями :) (вроде использования только статических функций) тебя это устроит?:) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 02:59 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, или, например, у new MyClass() будет своя копия "ресурса" (например, список результатов вычисления), у Singleton<MyClass> своя. это тоже самое что у вас своя ветка проекта а у Вси пупкина форк :) смысл от этого не поменяеться, хотите поведение сингелтона, используйте глобальнуй точку доступа, если не используете это ваши проблемы ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:02 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, Потому что на самом деле доступом к ресурсу, одному на все нити, управляет MyClass, а не Singleton<MyClass>.Не MyClass, а экземпляр MyClass.LelouchЕсли вы не запретите создавать свои экземпляры MyClass, кто-то может поиметь много трудновыявляемых проблем, если создаст его экземпляр, и начнет "общаться" с ресурсом через него, при том, что Ваши собственные ф-ии будут продолжать использовать Singleton<MyClass>. Для них ресурс будет синхронизирован, для кода этого "кого-то" нет.Я же Вам пишу, что в desktop мне нужен Singleton<MyClass>, а в web каждый реквест должен работать со свои экземпляром MyClass. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:02 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, в моей сборке у человека или не будет возможности создать свой экземпляр MyClass, или не будет такой фигни как Singleton<MyClass>. Максимум будет, например, нитезависимый MyClass.Current . Но я даже в пьяном бреду не назову его Singleton`ом ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:04 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, или, например, у new MyClass() будет своя копия "ресурса" (например, список результатов вычисления), у Singleton<MyClass> своя.Дак в вот в web у реквеста и должна быть своя копия "ресурса". Если один реквест получит доступ к ресурсам другого реквеста, то будет весело. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:06 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
2) Ну вы будете вынуждены или остаться на старой версии, или перейти на другое решение. Или воспользоваться skyANAМаксимум будет, например, нитезависимый MyClass.Current . Но я даже в пьяном бреду не назову его Singleton`ом на клиенте. (если MyClass перестанет быть Singleton'ом). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:08 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, То есть, вы считаете что HttpRequest.Current -синглтон?) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:08 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
HttpContext.Current * ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:09 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий ВикторовичDenis., :) хорошо я скажу что это сингелтон с ограничеными возможностями :) (вроде использования только статических функций) тебя это устроит?:) таким образом у некого класса (или экземпляра что не принципиально ) есть поле недоступное для изменения и как ты только что подтвердил это синглтон. Таким образом static class myclass{public int singleton{get{return 10;}} это синглтон так как "я предоставил глобальную точку доступа с единственным доступным для этой точки доступа экземпляром класса TClass к тому же потокобезопасным ". Как известно глобальность относительна таким образом любой класс или объект предоставляющий поле для чтения синглтон. Поздравляю, вы от лично поняли суть паттерна и не зашорены как остальные ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:09 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, т. е. вы за другого человека считает что ему хорошо а что плохо?:), вы просто не умеете признавать свои поражения, тесты вам были предоставлены, экземпляр TClass полученые через Singelton<TClass>.Instance в разных потоках идентичны, а значит Singelton<TClass>.Instance ведет себя как синглтон а это самое важное в данном споре, а то кто то может создать новый экземпляр TClass относиться к моему коду и комне точно так же как форк вашей библиотеки Петром Сергеевичем к вам :) мало ли чего захочет сторонний разработчик? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:10 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Denis., нет просто мы смотрим на один и тот же объект под разными углами :) вы сторонник строгого поведения :) я сторонник утиной типизации, т. к. она позволяет рассмотреть систему более глобально чем если считать все строгим и статичным ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:14 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, я ничего не решаю, ваша реализация синглтона эквивалентна статическому полю без возможности перезаписи. Кстати, как вы сами сказали, getter свойства всего-лишь метод, так что вот такой код тоже синглтон: ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:14 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Пардон. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:15 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Denis., я правильно понял на что вы намекали?) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:16 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, знаете иногда лучше согласиться чем продолжать спор, Вы останетесь при своем мнении я останусь при своем я если честно уже спать хочу :(:) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:16 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchПардон. в качестве Mock обьекта это имеет право на существование ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:17 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, ну да, я жду пока вы согласитесь, что написали какую-то фигню вместо одиночки) То что такой код применим в ряде случаев я не оспариваю, но это не Одиночка) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:17 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, То есть, вы считаете что HttpRequest.Current -синглтон?)В рамках одного реквеста можно сказать и так. Погуглите "Singleton-per-Request pattern". ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:18 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, там комментарии специально исключают такую возможность )) Число 4 - синглтон, от того что я могу получить его из метода и оно не будет меняться?) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:19 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, то что в этом же реквестве я могу создать другой HttpContext вас не смущает? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:20 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий ВикторовичDenis., нет просто мы смотрим на один и тот же объект под разными углами :) вы сторонник строгого поведения :) я сторонник утиной типизации, т. к. она позволяет рассмотреть систему более глобально чем если считать все строгим и статичным утиная типизация здесь ни причем. За ней ты пытаешься спрятать невозможность даже для самого себя дать определение синглтона. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:20 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, то что в этом же реквестве я могу создать другой HttpContext вас не смущает?Рабочий код приведите, посмотрим насколько он меня смутит. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:22 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchDenis., я правильно понял на что вы намекали?) я не намекал. Я это писал открытым текстом раза 4. Надеялся что мне скажут что это не синглтон и продолжаться поиски а что же тогда синглтон. Но мне сказали Что это сингл он. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:24 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, Вы уже погуглили "Singleton-per-Request pattern"? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:25 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Код: c# 1.
Вот этого из MSDN достаточно??? http://msdn.microsoft.com/ru-ru/library/system.web.httpcontext.current.aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:26 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANALelouch, Вы уже погуглили "Singleton-per-Request pattern"? И что этим паттерном вы хотели мне сказать?) Что, если я не воспользуюсь setterом HttpContext.Current, то я могу хранить свои объекты в HttpContext.Current.Items? (судя по первой же реализации в гугле) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:31 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, Код: c# 1.
Вот этого из MSDN достаточно??? http://msdn.microsoft.com/ru-ru/library/system.web.httpcontext.current.aspx Нет, не достаточно. Вы же не знаете зачем тут нужен сеттер. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:31 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANALelouch, Вы уже погуглили "Singleton-per-Request pattern"? И что этим паттерном вы хотели мне сказать?) Что, если я не воспользуюсь setterом HttpContext.Current, то я могу хранить свои объекты в HttpContext.Current.Items? (судя по первой же реализации в гугле)Что Вам пора нести лучи добра в массы: писать людям, что это у них не реализация "Singleton-per-Request pattern", т.к. у свойства HttpContext.Current есть сеттер. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:37 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, http://jelle.druyts.net/2006/04/05/FakingACurrentHttpContext.aspx ну судя по этому подменить его можно. Мне сейчас лень реанимировать свой проект, поэтому проверить к сожалению, не могу ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:39 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Я не сказал что у них не реализация этого паттерна Вот только синглтоном, судя по всему, там является ни разу не HttpContext.Current, а тот объект, который добавляется в Items. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
1я ссылка в гугле: http://dotnetslackers.com/Community/blogs/simoneb/archive/2006/08/21/The-ASP.NET-Singleton_2D00_per_2D00_Request-pattern.aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:44 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, Я не сказал что у них не реализация этого паттерна Вот только синглтоном, судя по всему, там является ни разу не HttpContext.Current, а тот объект, который добавляется в Items. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
1я ссылка в гугле: http://dotnetslackers.com/Community/blogs/simoneb/archive/2006/08/21/The-ASP.NET-Singleton_2D00_per_2D00_Request-pattern.aspx В Items добавляется объект new SingletonPerRequest(). Сам по себе этот объект разве синглтон? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:50 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Это уже не реализация singleton-per-request? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:52 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, реализация. Но от этого Ваше выражение: "синглтоном, судя по всему, там является тот объект, который добавляется в Items", - не становится корректным. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 03:57 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, если я добавлю еще один объект с таким-же поведением, то он не будет Singleton-per-Request? P.S. Таки реанимировал и убедился, подменить можно... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 04:01 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Давайте завтра продолжим, у меня хоть и свободный график (надеюсь как и у Вас), но уже 4 часа утра?)) Спокойной ночи) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 04:03 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, если я добавлю еще один объект с таким-же поведением, то он не будет Singleton-per-Request?Тут нужно уточнить, что Вы под объектом понимаете. Лично я - экземпляр класса. LelouchP.S. Таки реанимировал и убедился, подменить можно...Уже пишете людям, что их реализация "Singleton-per-Request" - лажа? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 04:06 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchДавайте завтра продолжим, у меня хоть и свободный график (надеюсь как и у Вас), но уже 4 часа утра?)) Спокойной ночи)Приятных снов. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 04:07 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, нет конечно, я уже выше написал свое мнение по этому вопросу ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 04:12 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Добавил навсякий... Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 08:51 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
не знаю зачем нужен синглтон (не было ж его в коболе и пл/1 , а код писали) но Лелоуч больше всех понимает суть а ВВ воще студент и токо что начал читать вики ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 09:20 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
ViPRosне знаю зачем нужен синглтон (не было ж его в коболе и пл/1 , а код писали) но Лелоуч больше всех понимает суть а ВВ воще студент и токо что начал читать вики+100500. Сказал, как отрезал... А то тут уже 10 страниц мусолят одно да потому, пытаясь сказать, что если выглядит как синглтон - то оно то и есть... Блин, поп-корн заканчивается, надо сходить ещё купить... Я лично, не понимаю, зачем называть синглтоном то что на него похоже, но является им лишь отчасти. Это как на индоутку сказать, что она утка, но вот у неё есть ещё одна фича и она типа и как индейка... Так что-же она тогда утка или индейка???, А она ни то ни другое - она ИНДОУТКА !!! Так что ВВ, то что ты сваял - это и есть индоутка (SemiSingleton)... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 09:32 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Alex Kuznetsov, молчали-бы. Вы то откровенно лажанулись, написав следующее:Alex KuznetsovВ общем, отвечу на поставленный вопрос так: имеет, покуда голова у того кто пользует такой шаблон на месте и абсолютно чётко осознаёт, что кто-нибудь (возможно даже из его команды) не сделает просто: Код: c# 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 10:38 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
ViPRosне знаю зачем нужен синглтон (не было ж его в коболе и пл/1 , а код писали) но Лелоуч больше всех понимает суть а ВВ воще студент и токо что начал читать викиВы раскроете суть своей фразы про суть, или может перейдём к вопросу: зачем нужен ООП? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 10:45 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, суть проста - неубиваемый объект ооп - нах не нужен ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 10:48 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
ViPRos, и да, давайте не будет переходить на личности. Критикуйте подход, а не людей. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 10:50 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
ViPRosсуть проста - неубиваемый объектОбъясните смысл этой фразы? Вы предлагаете нам подумать на тему: "Singleton и сборка мусора"? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 10:55 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, синглтон - недорозумение это когда класс=объект все это издержки ооп, не введено понятие мощности конструктора а если надо три объекта токо? так как конструктор - фабрика, надо было ввести понятие мощности фабрики по части выпуска продукции ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 10:55 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANAViPRosсуть проста - неубиваемый объектОбъясните смысл этой фразы? Вы предлагаете нам подумать на тему: "Singleton и сборка мусора"? да думайте о чем хотите но сначала подумайте - откуда эти грабли, которые обходите паттернами фулера ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 10:56 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Понятно, Вы сюда побрюзжать зашли. P.S.: паттерн Singleton легко адаптировать для создания нужного числа экземпляров. И кто такой Фулер? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 11:01 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANAAlex Kuznetsov, молчали-бы. Вы то откровенно лажанулись, написав следующее:Alex KuznetsovВ общем, отвечу на поставленный вопрос так: имеет, покуда голова у того кто пользует такой шаблон на месте и абсолютно чётко осознаёт, что кто-нибудь (возможно даже из его команды) не сделает просто: Код: c# 1. 2. 3.
ОК, звыняйте батько, опечаталси ! Исправляюсь... Вот так Вас устроит? Код: c# 1. 2. 3.
Я вообще нафиг не понимаю (ну вот не доходит до меня глубинного смысла) использования Generic-ов для реализации шаблона Singleton... В любом случае каждый такой класс проектируется исходя из Код: plaintext
Код: plaintext
Поэтому использовать Generic только вместо того, чтобы нарисовать три лишних строчки кода.... Ну не понимаю я этого - видимо ленность во мне ещё недостаточно развита И не надо только воплей про то что трудно поддерживать проект, если у тебя более N singleton-ов. Фигня всё это... IMHO - если много в проекте singleton-ов - переделывай архитектуру ибо кривая она возможно... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 12:57 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Alex Kuznetsov, да нету никакого глубиннного смысла. Просто где-то надо new MySuperClass() , а где-то Singleton<MySuperClass>.Instance . Вот такая практическая необходимость. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 13:16 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Вот камрад Lelouch использует Unity: LelouchСинглтон: Код: xml 1. 2. 3.
Фабрика: Код: xml 1. 2. 3.
И никого не смущает, что сам по себе класс Logger не реализует паттерн Singleton. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 13:20 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Спасибо что обратили внимание, судя по тому что данный баг был исправлен: https://unity.codeplex.com/workitem/9460, то в классе Logger можно использовать закрытый конструктор. Сегодня же напишу, что так можно сделать, надеюсь его поправят. Слушаю еще ваши замечания. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 13:36 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, бага-то тут при чём? Если ТС добавит фабрику для создания объектов, вместо использования публичного конструктора, то его подход станет кошернее? Если класс Logger заимеет публичный конструктор, то реализация Unity автоматически станет не синглтоном? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 13:45 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, это же вы прицепились к наличию открытого конструктора, так что сами и отвечайте на эти вопросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 13:46 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, это же вы прицепились к наличию открытого конструктора, так что сами и отвечайте на эти вопросы.Не понял Вас, где я прицепился к наличию открытого конструктора? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 13:48 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, skyANAПолучается что у Lelouch пользуется наидерьмовейшим синглтоном, т.к. то что он пишет в конфиге не запрещает никому написать new Logger(). Теперь станет нельзя, соответственно, по вашим же словам, перестанет быть наидерьмовейщим синглтоном. Управлять жизненным циклом будет только IoC контейнер. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 14:03 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, skyANAПолучается что у Lelouch пользуется наидерьмовейшим синглтоном, т.к. то что он пишет в конфиге не запрещает никому написать new Logger(). Теперь станет нельзя, соответственно, по вашим же словам, перестанет быть наидерьмовейщим синглтоном. Управлять жизненным циклом будет только IoC контейнер.Не понял. Вы утверждаете, что нельзя будет написать Код: xml 1. 2. 3.
если MyClass имеет публичный конструктор? Из ссылки на багу, что Вы привели этого вроде не следует. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 14:07 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANAAlex Kuznetsov, да нету никакого глубиннного смысла. Просто где-то надо new MySuperClass() , а где-то Singleton<MySuperClass>.Instance . Вот такая практическая необходимость. ААА, понятно, только ради щоб було.... Кхм.... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 15:21 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Alex KuznetsovskyANAAlex Kuznetsov, да нету никакого глубиннного смысла. Просто где-то надо new MySuperClass() , а где-то Singleton<MySuperClass>.Instance . Вот такая практическая необходимость. ААА, понятно, только ради щоб було.... Кхм....Кхм... Чё? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 15:44 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, мда... так никто и не сказал, почему паблик конструктор для TClass это плохо, ну кроме того что какой то "мифический" Петр Сергеевич удумает создать еще экземпляры класса TClass :) (и флаг ему в руки если ему так хочеться :), я за это не отвечаю, я вообще не могу отвечать за чужих программистов и их код :))и чем это плох мой контейнер Singelton<TClass> а вот IoC контейнер это хорошо :), он плох тем что я не использую Unity?:) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 23:53 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Alex KuznetsovIMHO - если много в проекте singleton-ов - переделывай архитектуру ибо кривая она возможно...Возможно, или кривая? Если кривая - то в каких случаях? Как количество синглетонов влияет на прямоту архитектуры? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 06:07 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Василий Викторович, Да никто не говорит, что это плохо. Говорят, что это нарушает принцип шаблона Singleton, т.к. даёт возможность создать ещё один экземпляр класса - а это его прямое противоречие. Опять-же назовите это полусинглтоном и никто Вам слова не скажет(пример про индоутку)... А Вы зацепились за непонятно что и пытаетесь доказать что это круто... Да пожалуйста, может быть и круто, для Вас лично... Вы же хотели поиметь различные мнения? Вы их поимели. И нечего теперь говорит, что вокруг много тех, кто не смог по достоинству оценить Ваш титанический труд по созданию нового шаблона... Опять-же Вы сами с себя за использование Вашего шаблона ответственность снимаете, ибо : Василий Викторович...ну кроме того что какой то "мифический" Петр Сергеевич удумает создать еще экземпляры класса TClass :) (и флаг ему в руки если ему так хочеться :), я за это не отвечаю, я вообще не могу отвечать за чужих программистов и их код ... Получается, что если Вы поставили библиотеку и в ней имеется такой вот "синглтон" который в один "прекрасный момент" чудесным образом может вдруг стать вовсе даже и не синглтоном потому что есть такая возможность, и кто-то (а именно тот кто Вам денег заплатил за библиотеку) вдруг по случайности (ну возможность-то есть) взял да и создал второй экземпляр класса - то он сам дурак? И Вы за это не хотите отвечать? Ну тогда чтобы не отвечать за это - называйте вещи своими именами... Вот о чём Вам пытаются уже десять страниц сказать... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 07:05 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANAAlex Kuznetsovпропущено... ААА, понятно, только ради щоб було.... Кхм....Кхм... Чё?Кхм... - это мнение моё.... о практичности такого подхода к синглтонам... Корячиться с Generic-ами для того чтобы работать с шаблоном Singleton - по мне, так я для этого ленивый... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 10:34 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Алексей КAlex KuznetsovIMHO - если много в проекте singleton-ов - переделывай архитектуру ибо кривая она возможно...Возможно, или кривая? Если кривая - то в каких случаях? Как количество синглетонов влияет на прямоту архитектуры?Возможно кривая За количество сильно не скажу, т.к. не было у меня проектов, где-бы мне приходилось использовать больше 5 Singleton-ов. А у Вас такие проекты были? Просто хочется понять практичность... PS. Прошу без срача и личных оскорблений, просто и по делу... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 10:40 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Alex KuznetsovПросто хочется понять практичность...Для этого нужно сравнить с аналогами: 1. static class с некоторыми оговорками. 2. DI-контейнер. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 11:13 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Alex KuznetsovВозможно криваяАрхитектура не может быть "возможно кривая". Она или кривая, или нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 11:16 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Alex KuznetsovskyANAпропущено... Кхм... Чё?Кхм... - это мнение моё.... о практичности такого подхода к синглтонам... Корячиться с Generic-ами для того чтобы работать с шаблоном Singleton - по мне, так я для этого ленивый...Реализация на вики тоже с Generic-ами. А есть реализация через Lazy. Выбирайте, что Вам подходит. ТС вот Выбрал и не заметно, что особо корячится с этим. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 12:32 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANAРеализация на вики тоже с Generic-ами. А есть реализация через Lazy. Выбирайте, что Вам подходит. ТС вот Выбрал и не заметно, что особо корячится с этим. Да я и не собираюсь шубу на плечи через ноги одевать. Я как-то так привык: по старинке Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Опять-же я не отрицаю возможности использования Generics для реализации шаблона Singleton.... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 12:47 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Alex Kuznetsov, а какую реализацию Вы посоветуете, если где-то нужен синглтон инстанс класса, а где-то обычный? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 12:54 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANAAlex Kuznetsov, а какую реализацию Вы посоветуете, если где-то нужен синглтон инстанс класса, а где-то обычный? предложение противоречит само себе ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 13:23 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANAAlex Kuznetsov, а какую реализацию Вы посоветуете, если где-то нужен синглтон инстанс класса, а где-то обычный?skyANA, наводящий вопрос: что значит где-то? Это одно приложение или универсальная библиотека, которая может применяться для разных случаев? И в зависимости от применения библиотеки мы можем использовать либо синглтон, либо работать с ним как с обычным классом? Если это библиотека, то в документации к ней должно быть жирным по белому указано, что есть такая фича и Вы используете её на свой страх и риск и несёте за это ответственность. Но согласитесь, что это будет уже не чистый синглтон. А в одном единственном приложении порождать синглтон и такой-же не синглтон.... Ну тогда сильно необходимо ужесточить контроль над использованием разделяемых ресурсов... И опять-же это тоже не будет чистым синглтоном... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 13:25 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Alex Kuznetsov, вижу, что Вы плохо следили за дискуссией. В desktop-клиенте нужен синглтон инстанс класса, в web-клиенте нет. Что предложите? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 13:27 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Unity же предоставляет такую возможность. Как бы Вы реализовали? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 13:29 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANAAlex Kuznetsov, вижу, что Вы плохо следили за дискуссией. Здесь Вы не правы... По моему мой предыдущий ответ как раз таки и раскрывает ответ на Ваш следующий вопрос (он и был написан исходя из Ваших же ранних предложений)... skyANAВ desktop-клиенте нужен синглтон инстанс класса, в web-клиенте нет. Что предложите? Повторю ещё раз: подход описанный ТС имеет право на существование ( я этого нигде не отрицал ), просто надо называть вещи своими именами... Это уже не будет ЧИСТЫМ Singleton. Или Вы не согласны с таким утверждением? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 13:45 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Alex KuznetsovskyANAAlex Kuznetsov, вижу, что Вы плохо следили за дискуссией. Здесь Вы не правы... По моему мой предыдущий ответ как раз таки и раскрывает ответ на Ваш следующий вопрос (он и был написан исходя из Ваших же ранних предложений)... skyANAВ desktop-клиенте нужен синглтон инстанс класса, в web-клиенте нет. Что предложите? Повторю ещё раз: подход описанный ТС имеет право на существование ( я этого нигде не отрицал ), просто надо называть вещи своими именами... Это уже не будет ЧИСТЫМ Singleton. Или Вы не согласны с таким утверждением?Ну в реализации Unity также употребляется термин singleton, и насколько ЧИСТА та реализация никого почему-то не волнует. Реализация ТСа потокобезопасна и позволяет ему решать свои задачи без лишних телодвижений, следовательно ответ: Да. Тему думаю можно закрывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 13:54 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, следовательно ответ: да, но это не синглтон, а удобная ТСу реализация чего-то там) Приведите пример, что на клиенте должно вести себя как синглтон, а на сервере позволять множественное создание? Что мешает вам с помощью наследования сделать из обычного класса синглтон, закрыв конструктор, добавив реализацию статического свойства Instance? P.S. Немного подумав: Использование Unity не делает класс синглтоном (пока он имеет открытый конструктор), обеспечивая лишь такое-же поведение как недореализация ТСа. P.P.S. В n-й раз: Реализация ТСа плоха, в том числе, тем, что Требует от MyClass наличия открытого конструктора. То есть, если я, как разработчик MyClass, уверен что он должен быть синглтоном, то я не могу этого обеспечить, и оставляю на откуп дяде Васе, что он никогда не создаст его экземпляр. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 14:15 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANAUnity же предоставляет такую возможность. Как бы Вы реализовали? Без использования Unity могу предложить реализовать что-то типа вот такого: через базовый абстрактный класс, реализующий бизнес логику Код: 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. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69.
Ну и понятно, что MyBasePseudoSingleton никоим образом не реализует шаблон Singleton. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 14:16 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, следовательно ответ: да, но это не синглтон, а удобная ТСу реализация чего-то там) Приведите пример, что на клиенте должно вести себя как синглтон, а на сервере позволять множественное создание? Что мешает вам с помощью наследования сделать из обычного класса синглтон, закрыв конструктор, добавив реализацию статического свойства Instance? P.S. Немного подумав: Использование Unity не делает класс синглтоном (пока он имеет открытый конструктор), обеспечивая лишь такое-же поведение как недореализация ТСа. P.P.S. В n-й раз: Реализация ТСа плоха, в том числе, тем, что Требует от MyClass наличия открытого конструктора. То есть, если я, как разработчик MyClass, уверен что он должен быть синглтоном, то я не могу этого обеспечить, и оставляю на откуп дяде Васе, что он никогда не создаст его экземпляр.У ТС MyClass реализует некую бизнес-логику. А уж как эта логика используется, как Singleton, или как Singlecall, от класса не зависит. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 15:08 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Если эта логика должна быть реализована как синглтон и никак иначе, то что мне делать с реализацией ТСа? Она мне этого не обеспечит ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 15:21 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, ну Вы же используете Unity, одной строкой Вы делаете то, что Вам надо, при этом класс Logger ни фига не синглтон и может быть создан через фабрику. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 15:28 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Но так как у вас принято соглашение работать только через IoC, то Вас это не волнует. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 15:29 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Во-первых, у него теперь закрытый конструктор) Во-вторых, я не прихожу на форум со словами "зацените мою реализацию синглтона", понимая, что опираюсь именно на договоренность работы через Unity. В-третьих, реализация ТС ограничивает мои возможности создать синглтон ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 15:42 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Еще раз обращаю ваше внимание: вики Гарантирует , что у класса есть только один экземпляр. Реализация ТС не только не гарантирует этого, она требует разрешить создание объектов (открытый конструктор). О каком синглтоне может идти речь? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 15:48 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, Во-первых, у него теперь закрытый конструктор)У кого у него? :) Вы прикалываетесь? Обновил версию Unity - перепиши свои классы! Они устрианили ошибку, что возникала, если конструктор НЕ открытый. То есть с открытым конструктором всё прекрасно работало, и я думаю и сейчас также прекрасно продолжает работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 16:43 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Можете и не переписывать. К теме относится слабо. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 17:01 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Прикалываетесь тут вы, называя наличие свойства, возвращающего ссылку на глобальный экземпляр MyClass синглтоном MyClass ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 17:02 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, Можете и не переписывать. К теме относится слабо.Почему слабо? Реализация Unity также не гарантирует, что класс не будет создан через прямой вызов конструктора, или через фабрику. Однако на практике это мало кого волнует. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 17:20 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANAчто класс экземпляр класса не будет создан через прямой вызов конструктора, или через фабрику ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 17:21 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, потому что класс не становится реализующим шаблон одиночки от того что Unity возвращает на все запросы 1 экземпляр. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 17:38 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, дак у ТС тоже класс не становится реализующим шаблон одиночки, если его экземпляр возвращается так: Singleton<MyClass>.Instance. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 17:40 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Я об этом с 1й страницы говорю. Что код ТС никак к реализации одиночки не относится. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 17:58 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
LelouchskyANA, Я об этом с 1й страницы говорю. Что код ТС никак к реализации одиночки не относится.А реализация Unity как-то к реализации синглтона относится? Почему в качестве примера того, какой Вы пользуете синглтон привели Unity? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 18:13 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, упоминание IoC было в ответ на это сообщение ТС: ТСТак вот что я хочу сказать... Lelouch и все кто тебя поддерживали :) вы хотя бы, работали с кодом из пару десятков тысяч строк?:) когда ты понимаешь что это никаким рефакторингом не лечиться, (ибо рефакторить не дадут ни времени ни средств) :(, а от тебя требуют новой, ну просто вот так нужной функциональности, вот после такого опыта понимаешь что писать нужно как можно меньше и как можно понятнее, и если шаблон не ведет проектирования себя так нужно значит шаблон нужно менять, слить вместе 2 или 3 шаблона, но при этом оставив понятность и простоту кода, ну а то что в данном случае придется чем то поступиться... ну что ж так тому и быть То есть если вдруг мне придется изменить поведение, я изменю конфигурацию Unity, я не буду "сливать вместе 2 или 3 шаблона". ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 18:32 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, зачем Вы уходите от прямого ответа на вопросы? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 18:37 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Скорее вы видите в моих ответах то, чего там нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 18:38 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, я не ответил на вопрос, почему привел пример с Unity ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 18:38 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, Вы не ответили на вопрос: А реализация Unity как-то к реализации синглтона относится? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 18:39 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, Обеспечивает похожее поведение при условии использования только Unity для получения экземпляра. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 18:46 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Lelouch, ну значит и реализации ТС обеспечивает похожее поведение при условии использования только Singleton<TClass> для получения экземпляра. Остановимся на этом. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 18:52 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
skyANA, но синглтоном не является) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 19:02 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Что мешает при использовании generic-фабрики синглетонов применить приватный конструктор? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 05:53 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Алексей КЧто мешает при использовании generic-фабрики синглетонов применить приватный конструктор? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Насколько я понимаю, это противоречит идее ТС, поскольку MyClass вообще нафиг не ничего не должен знать о Singleton<T>. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 10:09 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Alex KuznetsovНасколько я понимаю, это противоречит идее ТС, поскольку MyClass вообще нафиг не ничего не должен знать о Singleton<T>.Мне показалось, возмущение вызвал тот факт, что нельзя совместить создание синглетона через generic-фабрику и при этом иметь приватный конструктор. Пример выше показывает что это не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 10:26 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Сингтон-шминглтон... Лучше скажите, каково его прикладное применение? Длянафига он нужен? Что-то не припомню, чтобы у меня была нужна в сущности, обладающей характеристиками синглтона. ПС: Раздел "применение" тут ни о чем. Копипаста раздела "цель", перечисляющего характеристики синглтона, с которыми и так все ясно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 11:24 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
AntonariyЛучше скажите, каково его прикладное применение?Что-то, что существует в единственном экземпляре. При этом, оформление "этого" статическим классом связано с различными сложностями/невозможностями. Например, если нужно реализовать интерфейс или организовать полиморфизм. Датабиндинг на статические свойства тоже как-то не очень... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 11:31 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Алексей КAntonariyЛучше скажите, каково его прикладное применение?Что-то, что существует в единственном экземпляре. При этом, оформление "этого" статическим классом связано с различными сложностями/невозможностями. Например, если нужно реализовать интерфейс или организовать полиморфизм. Датабиндинг на статические свойства тоже как-то не очень...Я просил прикладное, а не сферическое "что-то" в вакууме. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 12:04 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
AntonariyСингтон-шминглтон... Лучше скажите, каково его прикладное применение? Длянафига он нужен? Что-то не припомню, чтобы у меня была нужна в сущности, обладающей характеристиками синглтона. К примеру: Класс логирования с единой точкой доступа для всего приложения... Единая фабрика объектов - может реализовать два шаблона синглтон и фабрика. Единый объект для работы с хранилищем данных, доступный из разных подключаемых библиотек... Всё зависит от задач и архитектуры... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 13:20 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
AntonariyАлексей Кпропущено... Что-то, что существует в единственном экземпляре. При этом, оформление "этого" статическим классом связано с различными сложностями/невозможностями. Например, если нужно реализовать интерфейс или организовать полиморфизм. Датабиндинг на статические свойства тоже как-то не очень...Я просил прикладное, а не сферическое "что-то" в вакууме.Контейнер документов в TabbedMDI интерфейсе устроит? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 13:23 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Alex KuznetsovКласс логирования с единой точкой доступа для всего приложения...Заменяется модулем с глобальными процедурами. Зачем здесь особенности синглтона? Alex KuznetsovЕдиная фабрика объектов - может реализовать два шаблона синглтон и фабрика.Сферично. Alex KuznetsovЕдиный объект для работы с хранилищем данных, доступный из разных подключаемых библиотек.А вот тут ничего не скажешь, синглтон маст хэв. Алексей ККонтейнер документов в TabbedMDI интерфейсе устроит? :-)Заменяется глобальной коллекцией. В общем, примерно понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 13:51 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
AntonariyАлексей ККонтейнер документов в TabbedMDI интерфейсе устроит? :-)Заменяется глобальной коллекцией. В общем, примерно понятно.Можно придумать ещё с десяток вариантов чем "это" можно заменить. Но зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 13:53 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Алексей КAntonariyпропущено... Заменяется глобальной коллекцией. В общем, примерно понятно.Можно придумать ещё с десяток вариантов чем "это" можно заменить. Но зачем?Затем, что пяток из них проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 13:56 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
AntonariyAlex KuznetsovКласс логирования с единой точкой доступа для всего приложения...Заменяется модулем с глобальными процедурами. Зачем здесь особенности синглтона? Да, и при этом прописывается глобальная процедура инициализации для объекта, который производит логирование... Ну ну... AntonariyAlex KuznetsovЕдиная фабрика объектов - может реализовать два шаблона синглтон и фабрика.Сферично.В каком смысле сферично? Вам пример привести? AntonariyAlex KuznetsovЕдиный объект для работы с хранилищем данных, доступный из разных подключаемых библиотек.А вот тут ничего не скажешь, синглтон маст хэв. Я и не говорил что MUST HAVE, я говорил CAN HAVE... Разницу улавливаете? В общем батенька, троллить начинаете поманеньку? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 14:12 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Alex KuznetsovВ каком смысле сферично? Вам пример привести?Не надо. Alex KuznetsovЯ и не говорил что MUST HAVE, я говорил CAN HAVE... Разницу улавливаете?Я и не говорил, что вы говорили, что MUST HAVE. Это сказал я. Разницу улавливаете? Alex KuznetsovВ общем батенька, троллить начинаете поманеньку? Ой, кто бы это говорил... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 14:31 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
AntonariyAlex KuznetsovВ общем батенька, троллить начинаете поманеньку? Ой, кто бы это говорил...Пример моего троления в этой теме в студию... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 14:48 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Alex KuznetsovAntonariyпропущено... Ой, кто бы это говорил...Пример моего троления в этой теме в студию...какой миленький нюансик а впрочем... Alex KuznetsovВ общем батенька, троллить начинаете поманеньку?Обвинение в троллинге это довольно жирная его разновидность, не находите? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 14:52 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
AntonariyАлексей Кпропущено... Можно придумать ещё с десяток вариантов чем "это" можно заменить. Но зачем?Затем, что пяток из них проще.Чем проще? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 15:31 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
AntonariyAlex Kuznetsovпропущено... Пример моего троления в этой теме в студию...какой миленький нюансик А то ! Мы тоже не лаптем деланые AntonariyAlex KuznetsovВ общем батенька, троллить начинаете поманеньку?Обвинение в троллинге это довольно жирная его разновидность, не находите?Ну так можно всё что угодно извернуть... Ладно, закрываем эту тему. Каждый всё равно останется по вопросу ТС при своём мнении... А кидаться какашками - не в моём стиле... PEACE? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 15:32 |
|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#18+
Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 15:49 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1404938]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
287ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 398ms |
0 / 0 |