Здравствуйте, AndrewVK, Вы писали:
VD> Да. Убедил КОМ — это никуда не годится.
AVK>Его катавасия с ActiveX никуда не годится.
Это другая история. Ни КОМ, ни интерфейсы тут не причем. Ну, и на счет не годится вопрос спорный. Все работает. Другое дело что документировано все плохо.
AVK>Не уверен. Я пока еще ничего не решил. Посмотрю существующие, потом определюсь.
Очень советую не заниматься созданием с нуля. Уйдеш с головой. Я как бы сам такой, так что тут меня лучше слушать очень внимательно.
AVK>Ну вобще то уже сейчас многие кнопки имеют отношение не к контролу, а именно к объектной модели. Просто ввиду того что раньше вся логика ьыла только в контрролах они привязываются к контролу. Вот давай посмотрим к примеру тулбар форума
AVK>1) Новое сообщение, реплай. Однозначно не имеет никакого отношения к контролу. Он даже никак на них не реагирует. То что сейчас этот код в контроле это неверный дизайн.
А к фиче оно имеет отношение? Диалог нового сообщения является частью гуи фичи. А гуи — это как раз задача контрола. Если мы хотим сделать хоум универсальным, нужно стараться не интегрировать гуи фич и код формы. Сам по себе ответ конечно желательно было бы оформить в виде метода у Msg. Но гуи к нему это уже другой вопрос.
Собственно никто не запрещает создавать ОО-модель ГУИ. Но все же от фич ее нужно отделать. Каждая фича будет иметь свою ОО-модель, в то время как сами фичи универсальны.
AVK>2) 5 кнопок пометки сообщений — прямого отношения к контролу не имеет. Пометка должна производится над объектной моделью, а контрол просто отражать эти изменения. Его участие в этом деле вторично
Кнопка? Да без контрола она вообще смысла не имеет. Если в первом пункте еще можно было говорить об ответе на активное сообещие, то помечаться как прочитанные могут сразу несколько сообщений, а значит эта кнопка зависит от списка выделенных сообщений. Выделение не являются частью ОО-модели, и стало быть бещ контрла в этой кнопке смысла нет.
AVK>3) Развернуть дерево. Вот это действительно именно контрол, но ты сам же эту опцию заблокировал.
Не более чем предыдущее. Ну, а заблокировал ты и сам знаеш почему.
AVK>4) Навигация по истории. Вот наверное единственные кнопки, которые можно без оговорок отнести к контролу.
AVK>5) В меню есть еще сохранение сообщения. Опять же — никакого отношения к контролу.
AVK>Итак, в итоге большинство воздействий прямого отношения не имеют. А иногда вобще никакого отношения.
AVK>Вот поэтому меню и тулбар это несомненно свойства именно фичи, а не контрола.
Ну, я вроде все обяснил. Или ты не понял? К фичам меню точно не отностся. Это гуи. Пусть оно будет отдельно от катлет.
VD>Да хоть в анус они будут вставляться. Фича отдала свой гуи в виде абстракции — контрола. Дальше гуи — это пооблемы этого контрола. Ему сама фича может быть даже не нужна.
AVK>Воздействия из тулбара и меню направлены прежде всего на фичу. Контрол просто один из способов воздействовать на эту же фичу.
Я уже выше сказал почему ты не прав. Могу попробывать по другому. Фича — это возможность хоума. Она активируется и работа ведется с ней. После активации весь гуи это уже отдельная песня. Фича же полиморфная структура. Нефига на нее цеплять, то о чем ей и знать не интересно.
Обработка меню и тулбаров прераготива контрола. Это попросту его честь. Просто мы создали механизм позволяющий часть его размещать вне него.
VD>Нормальная логика. Погляди как через ухо ты сделал. Фича отдает тублар который реально берется из контрола.
AVK>Это недоделки. Фича же должна его и генерить.
Ага. Доделки будут тогда когда ты будешь передавать управление при вызове кномки в контрол и обратно. Дурь да и только. Пусть каждый занимется своим. Фича обеспечивает возможности, а гуи живет своей жизнью.
VD>При этом фича завязывается на контрол. Она так же вынвждена быть завязана на меню. А так получается стройная концепция. Фича обязана знать только о контроле. Контрол определяет весь гуи.
AVK>Вот собственно почему? Чем контрол важнее меню?
Он не важнее. Он "определяет весь гуи".
VD> При этом он может вообеще незнать о наших заморочках. Например, какие-нибудь линки без пробелм могут быть отдельным контролом. Если же контролу требуется отобразить меню или тулбар он отдает интерфейс.
AVK>А ты подумай о том что контрол может быть один и тот же, а меню и тулбары разные.
Это проблемы контрола. Его внутренняя логика. Мы этому просто не должны мешать. Но независимость — это всегда хорошо (если не приводит к тормозам).
VD>Ты лучше вот о чем подумай. Иногда контролу нужно будет изменить тулбар или меню прямо на ходу.
AVK>Вспомни лучше MVC. Контрол это View, отчасти Controller. Зачем ты еще пытаешься навесить на него функции Model мне непонятно.
Ты снова пытаешся приплетать шаблоные вместо того чтобы думать. В терминах твоего MVC котрол это и влью и контролер в одном флаконе. Да и моедль, если вести речь о ОО-модели ГУИ. В жизни все сложенее. И примитивные концепции можно использовать только на элементарных ее частях.
Функции же будет пытаться наложить жизнь. Если у меня, например, нет выделенных строк, то и мометить сообщения как прочитанные я не имею права. При этом, было бы есетсвенно если соответсвующая кнопка была бы задизэйблена.
... << RSDN@Home 1.1 alpha 1 >>