![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Присказка:
Есть небольшая логика записи/чтения в/из базы (база эта кривая-кривая, но таково требование заказчика). Самая большая проблемма это порт и IP этой базы которые могут меняться. Эту информацию знает первая запущенная форма (это даже не форма, а юзерконтрол, но это сути не меняет). Ну и еще хотелось бы всю логику держать в одном месте. Сказка: У меня есть датасет и три модальных формы. Внутри них мне то же хотелось бы понадобилось читать и записывать. Решение 1: Сейчас я передаю IP и порт только в датасет. Понадобилось подключить к базе еще первую из модальных форм (а вскорости, ИМХО, подключатся и остальные формы). Можно сделать так же (как с датасетом) и с остальными, но будет дублирование кода. Решение 2: Можно передаввать в диалоги и датасет ссылку на главную форму. (Как-то муторно Решение 3: Вынести всю логику в статик класс "работа с базой" и инициализировать его при открытии главной формы. Решение 4: Ваш вариант. Жду предложений. Как всегда принимаются все мысли по поводу САБЖа. Зарание спасибо, ivashkanet P.S. Мне импонирует третий вариант. |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 24 Всего: 93 |
Я бы сделал отдельный класс (но не статик -- ибо статик суть зло) с бизнес логикой, а его передавал бы уже в конструктор формы.
-------------------- Да. Именно так. |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
||||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 24 Всего: 93 |
ivashkanet,
ну не то, чтобы совсем зло. Но например, захочешь ты сразу из нескольких потоков обратиться к базе данных... а у тебя там статик. Что будешь делать? (вообще любой статик метод должен гарантировать безопасность для многопоточности) Или захочешь несколько окон, каждое из которых к своей базе обращается и т.п. Плюс инициализация статика -- штука хитрая, происходящая в неопределённый момент времени и в случае непредвиденной ситуации более сложно это дело нормально обработать. Вот. Это всё из моего опыта, так что теперь стараюсь избегать -------------------- Да. Именно так. |
|||
|
||||
| ivashkanet |
|
||||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Уфф, а то я уже испугался
Слава богу поток у меня один
Нет, тут все просто. Если появилось модальное окно, то значит его вызвала главная форма, а значит статик проинициализирован. P.S. Этот статик будет internal |
||||
|
|||||
| $tatic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 28.1.2005 Репутация: 2 Всего: 22 |
А синглтон не получится реализовать?
|
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
P.S. Объсните, пожалуйста, что это такое и с чем его едят |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 24 Всего: 93 |
А с практической точки зрения в чём будет разница между синглтоном и статик классом? http://en.wikipedia.org/wiki/Singleton_pattern Это сообщение отредактировал(а) Дрон - 3.10.2006, 17:27 -------------------- Да. Именно так. |
|||
|
||||
| mr.DUDA |
|
||||||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Дрон, какие-то там примеры не совсем "по-нашему" деланные
Вот синглетон в чистом виде, с lazy load впридачу:
Использование:
Добавлено @ 23:12
Разница в наличии экземпляра объекта - в классическом синглетоне, статиком является только один метод (или свойство), а вся остальная часть объявления класса - как обычный экземпляр. В статик классе все методы и свойства объявлены как статические. На практике минусом работы со статик-классом является необходимость синхронизации доступа ко множеству полей класса; в то время как при использовании единственного экземпляра класса, все поля хранятся в одном месте - т.е. можно решить централизованную инициализацию, синхронизацию, уничтожение и т.п. задачи. -------------------- ![]() |
||||||
|
|||||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Дрон, mr.DUDA, спасибо. Вроде (чешет репу), понятно.
Вот только я с ходу не могу найти разницы (идеологической) между статиком и синглтоном P.S. Нет, вроде видна разница. Я пока ее только чувствую, но объяснить не могу. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |