|
|
|
Как лучше спроектировать?
|
|||
|---|---|---|---|
|
#18+
Привет! Хотелось бы спросить совета, как лучше сделать, относительно архитектуры. Суть в чем: у меня есть несколько разных рабочих классов, которые в рамках одного приложения выполняют каждый свое дело, но каждый из них иногда может выводить некоторую промежуточную информацию, вроде отладочной. Для вывода этой информации я создал отдельный класс. Вопрос в том, как лучше их связать? Мои варианты: 1. В каждом из рабочих классов сделать ссылку на объект-отладчик. 2. В каждом из рабочих классов генерить событие, а отладчику подписаться на них (ну не напрямую скорее всего, а через посредника). 3. Помощь зала :) Какие я вижу достоинства и недостатки: 1. Самый простой вариант, но недостаток в том, что если вдруг я захочу какой-то из этих классов использовать в другом месте, то понадобится и класс отладчика (сильная связанность). 2. Собственно, проблемы первого варианта мне сходу здесь не видятся.. Кстати, я думал сделать интерфейс, в котором определить это событие, и все рабочие классы наследовать от него, но беда в том, что в интерфейсе нельзя объявлять делегаты, которые нужны для событий.. Пришлось сделать просто абстрактный класс, но не есть это гуд - если появится еще кто-нибудь, от кого надо будет унаследоваться - множественного наследования в .NET нету :) Готов выслушать любые замечания и предложения :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2007, 03:49 |
|
||
|
Как лучше спроектировать?
|
|||
|---|---|---|---|
|
#18+
Использовать крутую штуку Visual Studio Debugger и отказаться от линуксовой привыкчки пихать крутые отладочные выводы инфы в релиз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2007, 04:20 |
|
||
|
Как лучше спроектировать?
|
|||
|---|---|---|---|
|
#18+
Sanchez911что в интерфейсе нельзя объявлять делегатыВ интерфейсе можно объявлять event. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2007, 09:10 |
|
||
|
Как лучше спроектировать?
|
|||
|---|---|---|---|
|
#18+
Sanchez911что в интерфейсе нельзя объявлять делегатыОпять же, если есть необходимость, можно объявить свойство, которое будет принимать/возвращать делегат Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2007, 09:14 |
|
||
|
Как лучше спроектировать?
|
|||
|---|---|---|---|
|
#18+
А насчет архитектуры в целом что скажете? Это не отладка, а именно служебный вывод, чтобы в дальнейшем можно было посмотреть ход работы программы (это индексатор сетевых ресурсов), не имея установленную VS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2007, 15:45 |
|
||
|
Как лучше спроектировать?
|
|||
|---|---|---|---|
|
#18+
Кстати, если сделать событие в интерфейсе, он все равно требует его переопределить в классе. Т.е. заново объявить.. тогда получается, что нафиг это наследование от интерфейса не нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2007, 16:06 |
|
||
|
Как лучше спроектировать?
|
|||
|---|---|---|---|
|
#18+
А в вашей «студии» нет аналога log4j? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2007, 19:31 |
|
||
|
Как лучше спроектировать?
|
|||
|---|---|---|---|
|
#18+
Софтверный проктологА в вашей «студии» нет аналога log4j? Скажи мне что есть сё и я отвечу кто ты... т. е. есть или нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2007, 19:37 |
|
||
|
Как лучше спроектировать?
|
|||
|---|---|---|---|
|
#18+
Софтверный проктологА в вашей «студии» нет аналога log4j? есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2007, 20:22 |
|
||
|
Как лучше спроектировать?
|
|||
|---|---|---|---|
|
#18+
В "студии" имеется namespace System.Diagnostics , в котором имеются классы Trace,TraceListener,TraceSwitch и т д ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2007, 20:30 |
|
||
|
Как лучше спроектировать?
|
|||
|---|---|---|---|
|
#18+
Автор, google log4net. Если переиспользование класса с минимальными зависимостями является основоным и критичным - тогда ваш вариант с событиями, но имхо log4net - это правильный подход к организации логинга в приложении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2007, 21:12 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=34867120&tid=1345784]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 403ms |

| 0 / 0 |
