|
-21 / 29 / 2
Регистрация: 17.03.2018
Сообщений: 778
|
|||||||||||
Singletone для Class library29.10.2019, 16:42. Показов 4890. Ответов 98
Метки нет (Все метки)
приветствую всех,
Каждый раз в каждом class где я работаю с class library я создаю объект. Говорят это не есть хорошо. Например:
Вопрос, как сделать singleton из класса Frame? спасибо!
0
|
|||||||||||
| 29.10.2019, 16:42 | |
|
Ответы с готовыми решениями:
98
Intellisense и autocompletion в библиотеках класса (Class Library) Работа с DirectX: Output Type of Class Library Как узнать путь к ресурсу сборки Class Library? |
|
14364 / 9465 / 1360
Регистрация: 21.01.2016
Сообщений: 35,692
|
|||||||||||
| 14.02.2020, 12:51 | |||||||||||
|
Bulky, синглтоны - тоже антипаттерн. Очень не желательно их использовать. Это чревато неявной связанностью кода.
Синглтон можно сделать так:
Конкретно по вашим мутным классам Watching_A. Там что-то про базы данных. Такие вещи действительно выносятся в отдельные классы. И сами эти классы должны открывать и закрывать подключение к базе в момент, когда с базой надо поработать. Постоянно держать подключение открытым не надо. Погуглите про паттерн "Репозиторий".
2
|
|||||||||||
|
-21 / 29 / 2
Регистрация: 17.03.2018
Сообщений: 778
|
||
| 14.02.2020, 12:54 [ТС] | ||
|
Открыто одно соединение и все классы рабоатют с одним соединением. Это главное условие. Асинхронно или синхронно это уже другой вопрос.
0
|
||
|
14364 / 9465 / 1360
Регистрация: 21.01.2016
Сообщений: 35,692
|
||
| 14.02.2020, 12:57 | ||
|
0
|
||
|
-21 / 29 / 2
Регистрация: 17.03.2018
Сообщений: 778
|
|
| 14.02.2020, 13:06 [ТС] | |
|
Usaga,
Честно говоря затрудняюсь я как прикрутить это все к ADC спасибо за код, можете в проекте показать как мне синглетон из ADC сделать? Хочу потетстить что получится.
0
|
|
|
14364 / 9465 / 1360
Регистрация: 21.01.2016
Сообщений: 35,692
|
|
| 14.02.2020, 13:15 | |
|
Bulky, я выше уже пример привёл как синглтон сделать.
0
|
|
|
-21 / 29 / 2
Регистрация: 17.03.2018
Сообщений: 778
|
|
| 14.02.2020, 13:17 [ТС] | |
|
0
|
|
|
14364 / 9465 / 1360
Регистрация: 21.01.2016
Сообщений: 35,692
|
|
| 14.02.2020, 13:22 | |
|
Что, настолько всё плохо?
0
|
|
|
-21 / 29 / 2
Регистрация: 17.03.2018
Сообщений: 778
|
||
| 14.02.2020, 13:28 [ТС] | ||
|
0
|
||
|
14364 / 9465 / 1360
Регистрация: 21.01.2016
Сообщений: 35,692
|
|
| 14.02.2020, 13:31 | |
|
Bulky, ага. Почитайте учебник уже. Если вы не можете просто поле статическое объявить и конструктор закрытым сделать по предоставленному примеру, то это вообще полный швах.
2
|
|
|
-21 / 29 / 2
Регистрация: 17.03.2018
Сообщений: 778
|
||
| 14.02.2020, 13:46 [ТС] | ||
|
А тут среди чайников вы конечно знаток по референсированию.
1
|
||
|
14364 / 9465 / 1360
Регистрация: 21.01.2016
Сообщений: 35,692
|
|
| 14.02.2020, 13:54 | |
|
Bulky, спасибо за похвалу) Обязательно приму к сведению) А вы пока постарайтесь добавить статическое поле в класс. Может получится.
0
|
|
|
Модератор
|
|||||||||||||||||||
| 14.02.2020, 18:03 | |||||||||||||||||||
|
Для внешнего взаимодействия с типом должны использоваться свойства. Добавлено через 35 минут Они должны получать его в конструкторе.
Нужно создать экземпляр и передавать его.
1
|
|||||||||||||||||||
|
-21 / 29 / 2
Регистрация: 17.03.2018
Сообщений: 778
|
|
| 14.02.2020, 18:05 [ТС] | |
|
Элд Хасп,
как лучше сделать? В классе Watching_A получить adc выполнить OpenDB(); а потом передавать в ViewModel и другие классы? Весь сок в том, что OpenDB() может исполняться только один раз. это требование по library.
0
|
|
|
Модератор
|
|||
| 14.02.2020, 18:21 | |||
|
Судя по названию и параметрам AВС работает с БД. Это скорее это Контекстная Модель EF. Если это так то, она относится к слою приложения лежащему ещё ниже чем Model. А что из себя представляют типы Watching я даже примерно по коду понять не могу. Может это и есть Модель...? Если брать в общем, то все слои должен создавать App. Там же он все эти слои связывает между собой после чего вызывает View. Но в вашем приложении очень мало информации чтобы показать на примере, в деталях как это делается. И очень много проблем вы сами себе создаёте конструируя приложение "Сверху вниз" - от View к данным. Приложение создаётся наоборот "Снизу вверх": сначала хранилище данных, потом слой работающий с этим хранилищем, над ним Model уже из MVVM, потом интерфейсы VM и только после этого View. При таком подходе не появляется неясностей что, как и кому передать, кто за что отвечает. Добавлено через 2 минуты Давайте для примера, для получения вами опыта, сделаем приложение "с нуля под ключ". Напишите, что за данные у вас, какая их структура, где они хранятся. Не из реального проекта, а такой пример реализация которого принесла вам пользу и понимание.
0
|
|||
|
Модератор
|
||
| 14.02.2020, 18:31 | ||
|
Помогает много и по делу. Если вам непонятно, что он советует, то лучше задумайтесь над повышением своего уровня знаний, или уровня общения чтобы корректно продолжать дискуссию. Если интересно посмотрите темы где мне Usaga, очень существенно помог и продолжает помогать. https://www.cyberforum.ru/ado-... 67342.html https://www.cyberforum.ru/ado-... 67914.html Пример создания приложения "Работа с комнатами в студенческих общежитиях" [WPF, SQLite, Элд Хасп]
0
|
||
|
-21 / 29 / 2
Регистрация: 17.03.2018
Сообщений: 778
|
|||
| 14.02.2020, 18:32 [ТС] | |||
|
1
|
|||
|
-21 / 29 / 2
Регистрация: 17.03.2018
Сообщений: 778
|
|||||||
| 15.02.2020, 18:46 [ТС] | |||||||
А что сделать со строкой вы закомментили? adc = new...Она очень важна т.к. вводит нужные парметры Т.к. важен не только доступ к методам ADC, а и параметрирование во время исполнения openDB().
0
|
|||||||
|
Модератор
|
||
| 15.02.2020, 19:14 | ||
|
Выше вы писали, что метод openDB() должен вызываться однократно в приложении. Если это так, то вызывать его надо один раз при создании экземпляра в App.
0
|
||
|
14364 / 9465 / 1360
Регистрация: 21.01.2016
Сообщений: 35,692
|
|
| 16.02.2020, 05:40 | |
|
Bulky, вы так и не озвучили какая-такая сила вас заставляет открывать ОДНО подключение к базе и держать его до закрытия приложения. Попытка сэкономить на ничём? Про пулы подключений в ADO.NET вы не слышали? Некогда отвлекаться на ерунду, надо синглтон вкорячивать, чтобы шарить подключение по всему приложению?
0
|
|
|
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
|
|
| 17.02.2020, 08:55 | |
|
Наверное попытка следовать инструкциям разработчика? Именно раз открыть DB с открытием App и именно раз закрыть DB вместе с закрытием App.
0
|
|
| 17.02.2020, 08:55 | |
|
Как искусственно вызвать exception в Class Library (пока пустой) Вопрос из теста: A project with an Output Type of Class Library cannot be started directly Есть Class library (с работающим кодом) как найти то, что запускает этот код?
Нужно составить регулярное выражение для поиска <div class="market_row_name"> и <div class="market_row_price"> Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|