|
Имеет ли право существовать такой подход к сиглетону?
|
|||
---|---|---|---|
#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 |
|
|
start [/forum/topic.php?fid=20&msg=38199336&tid=1404938]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 358ms |
total: | 492ms |
0 / 0 |