powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Имеет ли право существовать такой подход к сиглетону?
25 сообщений из 306, страница 8 из 13
Имеет ли право существовать такой подход к сиглетону?
    #38199751
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий ВикторовичDenis.,

этого эксперемента не проводил, прав ты или нет утверждать не буду :) нужно посмотреть как отреагируют тесты :)
какого эксперимента? Какие тесты? В статическом классе поле доступное только для чтения инициализированное в конструкторе.о каких тестах речь идти может? Вы не можете менять поле, объект только один, глобально доступен. Синглтон?
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199752
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

и что от этого изменится, кроме того, что с новой версией сборки ваш код перестанет компилироваться?
вы вольны остаться на старой версии, или заменить вызовы new MyClass() на MyClass.Instance.
BTW у МС например, как я писал выше, есть классы с таким поведением (есть Current, но можно создать новый экземпляр). Просто Singleton они не являются.

Кстати, если произойдет такая замена, возможна ситуация, что MyClass перестал допускать возможность массового создания - то есть ваш код полностью валиден для старой версии сборки.
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199753
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch, а Вы так и не объяснили почему Singleton<MyClass> - это не синглтон.
У него может быть только один экземпляр и к нему есть глобальная точка доступа - свойство Instance.
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199754
Фотография Василий Викторович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.Василий Викторовичпропущено...

да я считаю так считаю ибо я предоставил глобальную точку доступа с единственным доступным для этой точки доступа экземпляром класса TClass к тому же потокобезопасным , на этом моя зона ответственности заканчиваеться и я не отвечаю за то что взбредет в голову какому нибудь Петру Сергеевичу, который создаст из моего класса TClass еще 1 экземпляр, он сам ССЗБ, пусть перед использованием читает документацию к тому что использует
не могу написать код так как с телефона. Если я сделаю статический класс в котором сделаю поле некого типа инициализирую его в статическом конструкторе и предоставлю к нему только геттер это синглтон? Удовлетворяет твоему определению полностью. Синглтон?
немогу утверждать что это будет сингелтон в привычном понимании... но то что тесты выдают один и тот же GetHashCode() это факт
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199755
Фотография Василий Викторович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchВасилий Викторович,

Вы, как автор библиотеки, назвав Singletonом то, что понимаете как Singleton только вы и примкнувший к вам Шипилов SkyANA, дали мне лишний способ выстрелить себе в ногу. Если, например, вы поставляете сборку без исходников и с плохой документацией, то, задолбавшись искать ошибку, я откажусь от нее в пользу решения, в котором не буду испытывать проблем.
это ваше право :)
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199756
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchskyANA,

и что от этого изменится, кроме того, что с новой версией сборки ваш код перестанет компилироваться?
вы вольны остаться на старой версии, или заменить вызовы new MyClass() на MyClass.Instance .И пользователи web-приложения начнут ловить интереснейшие глюки
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199757
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

Потому что на самом деле доступом к ресурсу, одному на все нити, управляет MyClass, а не Singleton<MyClass>. Если вы не запретите создавать свои экземпляры MyClass, кто-то может поиметь много трудновыявляемых проблем, если создаст его экземпляр, и начнет "общаться" с ресурсом через него, при том, что Ваши собственные ф-ии будут продолжать использовать Singleton<MyClass>. Для них ресурс будет синхронизирован, для кода этого "кого-то" нет.
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199758
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

с чего бы? вы сборку на сервере без тестов поменяете?
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199759
Фотография Василий Викторович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis,
Я знаю что статический клас не дает обратиться по указателю this (указатель сам на себя) но может вам в данном случае это и не нужно?
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199760
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий Викторович,

"немогу утверждать что это будет сингелтон в привычном понимании... но то что тесты выдают один и тот же GetHashCode() это факт "
что здесь несинглтоновского в привычном понимании? Ты сказал что такое синглтон. Код который я описал удовлетворяет твоему определению. Что здесь непривычного ?
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199761
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
или, например, у new MyClass() будет своя копия "ресурса" (например, список результатов вычисления), у Singleton<MyClass> своя.
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199762
Фотография Василий Викторович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis., :) хорошо я скажу что это сингелтон с ограничеными возможностями :) (вроде использования только статических функций) тебя это устроит?:)
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199764
Фотография Василий Викторович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchskyANA,
или, например, у new MyClass() будет своя копия "ресурса" (например, список результатов вычисления), у Singleton<MyClass> своя.
это тоже самое что у вас своя ветка проекта а у Вси пупкина форк :) смысл от этого не поменяеться, хотите поведение сингелтона, используйте глобальнуй точку доступа, если не используете это ваши проблемы
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199765
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchskyANA,

Потому что на самом деле доступом к ресурсу, одному на все нити, управляет MyClass, а не Singleton<MyClass>.Не MyClass, а экземпляр MyClass.LelouchЕсли вы не запретите создавать свои экземпляры MyClass, кто-то может поиметь много трудновыявляемых проблем, если создаст его экземпляр, и начнет "общаться" с ресурсом через него, при том, что Ваши собственные ф-ии будут продолжать использовать Singleton<MyClass>. Для них ресурс будет синхронизирован, для кода этого "кого-то" нет.Я же Вам пишу, что в desktop мне нужен Singleton<MyClass>, а в web каждый реквест должен работать со свои экземпляром MyClass.
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199767
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий Викторович,

в моей сборке у человека или не будет возможности создать свой экземпляр MyClass, или не будет такой фигни как Singleton<MyClass>.
Максимум будет, например, нитезависимый MyClass.Current . Но я даже в пьяном бреду не назову его Singleton`ом
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199768
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchskyANA,
или, например, у new MyClass() будет своя копия "ресурса" (например, список результатов вычисления), у Singleton<MyClass> своя.Дак в вот в web у реквеста и должна быть своя копия "ресурса". Если один реквест получит доступ к ресурсам другого реквеста, то будет весело.
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199769
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2) Ну вы будете вынуждены или остаться на старой версии, или перейти на другое решение. Или воспользоваться
skyANAМаксимум будет, например, нитезависимый MyClass.Current . Но я даже в пьяном бреду не назову его Singleton`ом на клиенте. (если MyClass перестанет быть Singleton'ом).
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199770
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

То есть, вы считаете что HttpRequest.Current -синглтон?)
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199771
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HttpContext.Current *
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199772
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий ВикторовичDenis., :) хорошо я скажу что это сингелтон с ограничеными возможностями :) (вроде использования только статических функций) тебя это устроит?:)
таким образом у некого класса (или экземпляра что не принципиально ) есть поле недоступное для изменения и как ты только что подтвердил это синглтон. Таким образом static class myclass{public int singleton{get{return 10;}} это синглтон так как
"я предоставил глобальную точку доступа с единственным доступным для этой точки доступа экземпляром класса TClass к тому же потокобезопасным ". Как известно глобальность относительна таким образом любой класс или объект предоставляющий поле для чтения синглтон. Поздравляю, вы от лично поняли суть паттерна и не зашорены как остальные ;)
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199773
Фотография Василий Викторович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch, т. е. вы за другого человека считает что ему хорошо а что плохо?:), вы просто не умеете признавать свои поражения, тесты вам были предоставлены, экземпляр TClass полученые через Singelton<TClass>.Instance в разных потоках идентичны, а значит Singelton<TClass>.Instance ведет себя как синглтон а это самое важное в данном споре, а то кто то может создать новый экземпляр TClass относиться к моему коду и комне точно так же как форк вашей библиотеки Петром Сергеевичем к вам :) мало ли чего захочет сторонний разработчик?
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199776
Фотография Василий Викторович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis., нет просто мы смотрим на один и тот же объект под разными углами :) вы сторонник строгого поведения :) я сторонник утиной типизации, т. к. она позволяет рассмотреть систему более глобально чем если считать все строгим и статичным
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199777
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий Викторович,

я ничего не решаю, ваша реализация синглтона эквивалентна статическому полю без возможности перезаписи.

Кстати, как вы сами сказали, getter свойства всего-лишь метод, так что вот такой код тоже синглтон:
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199778
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон.
...
Рейтинг: 0 / 0
Имеет ли право существовать такой подход к сиглетону?
    #38199780
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.,

я правильно понял на что вы намекали?)
...
Рейтинг: 0 / 0
25 сообщений из 306, страница 8 из 13
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Имеет ли право существовать такой подход к сиглетону?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]