Форум
Архитектура программного обеспечения
Тема
Как правильно задавать вопросы
B
I
abc
U
X
3
X
3
H1
H2
H3
H4
H5
H6
Asm
C/C++
C#
Erlang
Haskell
IDL
Java
Lisp
MSIL
Nemerle
ObjC
OCaml
Pascal
Perl
PHP
Prolog
Python
Ruby
Rust
SQL
VB
Здравствуйте, dr. Acula, Вы писали: I>>>>Синоним слова синглтон будет "глобальная переменная". Уже лет 50 все книги-буквари по программированию пишут одно и то же : "Избегайте глобальных переменных". Люди действительно стали избегать - практически везде, где раньше были глобальные переменные, выросли синглтоны. Что интересно - все проблемы остались. Фактически, такой синглтон просто замыкает самые разные контексты и является ни чем иным, как способом управления депенденсами, негибким, проблемным и очень непредсказуемым. DA>>>Т.е. ты за DI и прочие IoC, я правильно понял? I>>Я не знаю, что значит "за DI и IoC". DA>Okay... I>>Самый интересный вариант IoC на мой взгляд это использование лямбда-выражений в таких вещах, как Linq в .Net или Stream в Джава. DA>Офигеть, чо. I>>Вероятно, ты имел ввиду управление депенденсами. Да, я за то, что бы управлять депенденсами, при чем явно, что бы все вещи типа состояние, время жизни, аггрегирование, делегирование, композиция и тд были видны с первого взгляда, а не размазывались тонким слоем по сотне классов. DA>Какие сотни классов? DA>Тебе не видно состояние в синглтоне? I>>>>Есть простой подход, который позволит понять, о чем идет речь - заменяем слово "синглтон" на "глобальная переменная" и смотрим, что же изменилось. Обычно речь про единственный экземпляр какого то типа. Но, извините, синглтон и единственный экземпляр это немного разные понятия. Синглтон требует, что бы была глобальная точка входа. Более того, должна решаться какая то проблема, например - долгая инициализация, засорение глобального неймспейса и тд. DA>>>При чём тут неймспесы? I>>При том, что глобальные переменные независимо от происхождения засоряют этот самый неймспейс. И часто возникает путаница со всеми сопутствующими проблемами. DA>Еще раз. При чём глобальный неймспейс к синглтону? I>>>>Множество других применений как правило сильно искусственные. Например класс DataBase. Ну есть у приложения ровно одна база данных, и что с того ? [b]что мешает создавать экземпляры по требованию[/b] ? Если технических проблем нет, то синглтонить класс для работы с базой мягко говоря очень странный подход. DA>>>А что, синглтон по требованию созать нельзя? I>>Можно, только зачем ? Ответь на вопрос - какую проблему ты решаешь, делая класс базы данных синглтоном ? DA>Я не обсуждаю с тобой твои выдуманные примеры БД как синглтона - очевидно, что БД так не делают. DA>Я у тебя спрашивал именно о выделенном - "что мешает создавать экземпляры по требованию". DA>Что мешает в случае синглтона? I>>>>1. равно времени жизни экземпляра приложения I>>>>2. больше времени жизни экземпляра приложения DA>>>Какой-то поток сознания...начали с паттерна, перешли к какой-то прикладной проблематике. I>>Именно так и было задумано. DA>Типичный вариант твоей "дискуссии".
Теги:
Введите теги разделенные пробелами. Обрамляйте в кавычки словосочетания с пробелами внутри, например:
"Visual Studio" .NET
Имя, пароль:
Загрузить
Нравится наш сайт?
Помогите его развитию!
Отключить смайлики
Получать ответы по e-mail
Проверить правописание
Параметры проверки …