powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как лучше спроектировать?
11 сообщений из 11, страница 1 из 1
Как лучше спроектировать?
    #34867090
Sanchez911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет! Хотелось бы спросить совета, как лучше сделать, относительно архитектуры.
Суть в чем: у меня есть несколько разных рабочих классов, которые в рамках одного приложения выполняют каждый свое дело, но каждый из них иногда может выводить некоторую промежуточную информацию, вроде отладочной. Для вывода этой информации я создал отдельный класс. Вопрос в том, как лучше их связать? Мои варианты:
1. В каждом из рабочих классов сделать ссылку на объект-отладчик.
2. В каждом из рабочих классов генерить событие, а отладчику подписаться на них (ну не напрямую скорее всего, а через посредника).
3. Помощь зала :)

Какие я вижу достоинства и недостатки:
1. Самый простой вариант, но недостаток в том, что если вдруг я захочу какой-то из этих классов использовать в другом месте, то понадобится и класс отладчика (сильная связанность).
2. Собственно, проблемы первого варианта мне сходу здесь не видятся.. Кстати, я думал сделать интерфейс, в котором определить это событие, и все рабочие классы наследовать от него, но беда в том, что в интерфейсе нельзя объявлять делегаты, которые нужны для событий.. Пришлось сделать просто абстрактный класс, но не есть это гуд - если появится еще кто-нибудь, от кого надо будет унаследоваться - множественного наследования в .NET нету :)

Готов выслушать любые замечания и предложения :)
...
Рейтинг: 0 / 0
Как лучше спроектировать?
    #34867095
Random_Goodman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использовать крутую штуку Visual Studio Debugger и отказаться от линуксовой привыкчки пихать крутые отладочные выводы инфы в релиз
...
Рейтинг: 0 / 0
Как лучше спроектировать?
    #34867120
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sanchez911что в интерфейсе нельзя объявлять делегатыВ интерфейсе можно объявлять event.
Код: plaintext
1.
2.
3.
public interface IMyInterfaceWithEvent
{
   event EventHandler MyEvent;
}
...
Рейтинг: 0 / 0
Как лучше спроектировать?
    #34867122
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sanchez911что в интерфейсе нельзя объявлять делегатыОпять же, если есть необходимость, можно объявить свойство, которое будет принимать/возвращать делегат
Код: plaintext
1.
2.
3.
public interface IMyInterface
{
    MyDelegate MyProp{ get; set; }
}
...
Рейтинг: 0 / 0
Как лучше спроектировать?
    #34867337
Sanchez911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А насчет архитектуры в целом что скажете?

Это не отладка, а именно служебный вывод, чтобы в дальнейшем можно было посмотреть ход работы программы (это индексатор сетевых ресурсов), не имея установленную VS.
...
Рейтинг: 0 / 0
Как лучше спроектировать?
    #34867344
Sanchez911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, если сделать событие в интерфейсе, он все равно требует его переопределить в классе. Т.е. заново объявить.. тогда получается, что нафиг это наследование от интерфейса не нужно?
...
Рейтинг: 0 / 0
Как лучше спроектировать?
    #34867493
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в вашей «студии» нет аналога log4j?
...
Рейтинг: 0 / 0
Как лучше спроектировать?
    #34867501
Random_Goodman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтверный проктологА в вашей «студии» нет аналога log4j?
Скажи мне что есть сё и я отвечу кто ты... т. е. есть или нет...
...
Рейтинг: 0 / 0
Как лучше спроектировать?
    #34867539
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтверный проктологА в вашей «студии» нет аналога log4j?
есть
...
Рейтинг: 0 / 0
Как лучше спроектировать?
    #34867543
В "студии" имеется namespace System.Diagnostics ,
в котором имеются классы Trace,TraceListener,TraceSwitch и т д
...
Рейтинг: 0 / 0
Как лучше спроектировать?
    #34867568
Архитект 1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Автор, google log4net. Если переиспользование класса с минимальными зависимостями является основоным и критичным - тогда ваш вариант с событиями, но имхо log4net - это правильный подход к организации логинга в приложении.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как лучше спроектировать?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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