|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
Одиночка (англ. Singleton) — порождающий шаблон проектирования, гарантирующий, что в однопоточном приложении будет единственный экземпляр класса с глобальной точкой доступа. Так вот вопрос - какая разница между синглетоном и статическим классом? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 11:22 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
https://www.google.ru/search?q=singleton vs static class in c# , начиная с самой первой ссылки ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 11:26 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
saxixгарантирующий, что в однопоточном приложении будет единственный экземпляр классаЭто откуда такое определение? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 11:43 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
Нахлобучsaxixгарантирующий, что в однопоточном приложении будет единственный экземпляр классаЭто откуда такое определение? Из Википедии )) В принципе понял разницу. Применимо к моим задачам - статический предпочтительнее ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 12:06 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
Нахлобучsaxixгарантирующий, что в однопоточном приложении будет единственный экземпляр классаЭто откуда такое определение?Если не прибегать к хакам и всякого рода извращениям в инстанциировании объекта, то корректно нарисованный синглтон гарантирует единичность экземпляра класса, потому как публичный конструктор отсутствует, а есть только статический метод возвращающий одиночку. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 15:19 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
Alex KuznetsovЕсли не прибегать к хакам и всякого рода извращениям в инстанциировании объекта, то корректно нарисованный синглтон гарантирует единичность экземпляра класса, потому как публичный конструктор отсутствует, а есть только статический метод возвращающий одиночку.И? При чем тут однопоточность? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 15:29 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
НахлобучAlex KuznetsovЕсли не прибегать к хакам и всякого рода извращениям в инстанциировании объекта, то корректно нарисованный синглтон гарантирует единичность экземпляра класса, потому как публичный конструктор отсутствует, а есть только статический метод возвращающий одиночку.И? При чем тут однопоточность?Сказали же: "Из Википедии". :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 16:22 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
НахлобучAlex KuznetsovЕсли не прибегать к хакам и всякого рода извращениям в инстанциировании объекта, то корректно нарисованный синглтон гарантирует единичность экземпляра класса, потому как публичный конструктор отсутствует, а есть только статический метод возвращающий одиночку.И? При чем тут однопоточность? частный случай контекста, без которого обсуждение понятия singleton не имеет смысла ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 18:56 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
НахлобучAlex KuznetsovЕсли не прибегать к хакам и всякого рода извращениям в инстанциировании объекта, то корректно нарисованный синглтон гарантирует единичность экземпляра класса, потому как публичный конструктор отсутствует, а есть только статический метод возвращающий одиночку.И? При чем тут однопоточность?На самом деле да, однопоточность, в данном случае, рояли не играет, как говорится (был неправ и посыпаю голову пеплом). Причем, в англоязычной версии из той-же вики про однопоточность в определении ни слова (трудности перевода на русский язык???). Тем не менее, при некорректной реализации в многопоточной среде, в принципе, могут возникнуть проблемы другого характера. Вот довольно неплохая статейка на этот счёт (на иностранном языке ) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 19:32 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
Alex Kuznetsov, потоки и многопоточная среда имеют косвенное отношение к вопросу Относительно какого контекста "одиночка" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 19:55 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
ИзопропилAlex Kuznetsov, потоки и многопоточная среда имеют косвенное отношение к вопросу Относительно какого контекста "одиночка" ?Изопропил, я рассматриваю многопоточную среду как N(>1) потоков в рамках одного процесса. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 20:07 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
Alex KuznetsovИзопропилAlex Kuznetsov, потоки и многопоточная среда имеют косвенное отношение к вопросу Относительно какого контекста "одиночка" ?Изопропил, я рассматриваю многопоточную среду как N(>1) потоков в рамках одного процесса. а если рассмотреть домены в рамках процесса? Потоки не при делах будут ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 20:12 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
Alex Kuznetsov, авторЕсли не прибегать к хакам и всякого рода извращениям в инстанциировании объекта так есть lazy чего уж проще? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 20:12 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#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.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 20:48 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
ИзопропилAlex Kuznetsovпропущено... Изопропил, я рассматриваю многопоточную среду как N(>1) потоков в рамках одного процесса. а если рассмотреть домены в рамках процесса? Потоки не при делах будутРазные домены в рамках процесса изолированы и просто так междоменное взаимодействие не организовать. Вместе с тем, как Вы знаете, в рамках одного домена может быть более одного потока. Соответственно, можно сделать так, чтобы разные потоки из разных доменов одного процесса обращались к методам единственного объекта (singleton). Правда для этого придётся "экранировать" обращение к таким методам путём создания прокси сервера и передачи ему соответствующих сообщений. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 21:21 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
Где-то в степиAlex Kuznetsov, авторЕсли не прибегать к хакам и всякого рода извращениям в инстанциировании объекта так есть lazy чего уж проще?Под хаками и всякого рода извращениями я имел в виду инстанциирование объекта в обход вызова статического публичного метода класса (Reflection и иже с ними). Lazy<T> здесь абсолютно не при чём, потому как Singleton и так может быть реализован с использованием создания объекта при первом обращении к статическому методу класса (чем не Lazy?). ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 21:29 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
Alex Kuznetsov, Да потому что краткость, мы же не в Сколково и не бальзаки получать со строчек кода, зачем изобретать велосипед в lazy блокировок на создание интсанса как конь наеб - хош с одним хош с двумя локами.. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 22:04 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
Alex Kuznetsov, и вообще, это тема из собеседований, знать про него конечно нужно, но применять имхо не стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 22:09 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
Где-то в степиAlex Kuznetsov, и вообще, это тема из собеседований, знать про него конечно нужно, но применять имхо не стоит.Я извиняюсь, не совсем понял чего не стоит применять ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 23:48 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
Где-то в степи Код: c# 1.
Тогда уж можно и так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Ну или просто не заморачиваясь дернуть конструктор рефлекшеном. Alex KuznetsovЯ извиняюсь, не совсем понял чего не стоит применять ? Синглтон. Есть менние, что это антипаттерн, увеличивающий связанность системы, и, в частности, препятствующий применению TDD. И вместо него нужно использовать DI. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2014, 06:08 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
Сон Веры Павловны... Alex KuznetsovЯ извиняюсь, не совсем понял чего не стоит применять ? Синглтон. Есть менние, что это антипаттерн, увеличивающий связанность системы, и, в частности, препятствующий применению TDD. И вместо него нужно использовать DI.Аааа, а я уж спужался за Lazy<T>, думаю занафига его надо было делать, ежели есть мнение, что применять его не стоит . Про мнение, что синглетон - это антипаттерн: это как про скальпель, которым можно операции делать, а можно и людей кромсать, или про микроскоп - можно микробов рассматривать, а можно и гвозди забивать... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2014, 06:42 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныИ вместо него нужно использовать DI. повеселил ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2014, 08:40 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
А что не так с DI? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2014, 09:33 |
|
Синглетон и статический класс
|
|||
---|---|---|---|
#18+
zzА что не так с DI? слово "вместо" веселит ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2014, 09:46 |
|
|
start [/forum/topic.php?fid=20&msg=38648060&tid=1402902]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 158ms |
0 / 0 |