Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Делегирование (перередача) обязаностей классам, контроллеры обработки событий 
:(
    Опции темы
addnr
Дата 10.7.2007, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 18.10.2006
Где: Украина

Репутация: нет
Всего: нет



Прочитал в книжке по проектированию, что для приложений с графической оболочкой программа делится на 3 слоя :


интерфейс - интерфейс пользователя

--------------------------------------

контроллер - класс принемающий события (например нажатие кнопки на клавеатуре) и распределяющий их по нужным классам приложения
 
--------------------------------------

классы приложения - классы на которые разбита данная система




преимущества:    интерфейс не связан с реализацией, возможность вносить изменения в классы с минимумом последствий для всей системы.



и наконец вопрос:
1. Как это сделать практически?
2. В оконном приложении под витду для каждого события создается отдельная функция, может это и есть своего рода контроллер?
3. И если система реализована подобным образом (2.) интерфейс будет отделен от реализации?
PM MAIL ICQ   Вверх
mr.DUDA
Дата 11.7.2007, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



1. обычно в к книгам идут реальные примеры, как что реализуется на практике
2. нет, функции-обработчики событий и паттерн model-view-controller находятся на разных уровнях; в случае обработчиков, наличествует только слой view; слои model и controller отсутствуют либо смешаны со слоем обработчиков событий
3. да


--------------------
user posted image
PM MAIL WWW   Вверх
Aannttoonn
Дата 13.7.2007, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 7.12.2005
Где: г. Елабуга

Репутация: нет
Всего: нет



Привет! Сам вот на этой теме сижу. Только у меня не книжек, ничего нету.
Думал так сделать:

Делаю форму MyForm : Form, IMyForm
Реализую MyForm с кнопками.
Потом в интерфейсе IMyForm думаю каким-то образом указать, чтобы в MyForm по нажатию кнопок в главный класс отсылалось ключевое слово какого-нибудь события и пара нужных ссылок на что-нибудь. Например создание какой-нибудь MDI-формы ("Create MDIForm",MyForm). Это пока только в мыслях, может пока буду тыкать додумаюсь до чего-нибудь более умного.
Делаю главный класс MainClass. В нём функцию которая обрабатывает поступившее сообщение и передаёт управление на какой-нибудь необходимый метод. Эти методы могут создавать формы или например считывать инфу с какой-нибудь базы.

Не знаю насколько эта концепция имеет право на существование smile
Тем более, что я пока ни как не соображу как с помощью интерфейса заставить в MyForm создать событие, которое бы отсылало такие вот сообещния в главную форму.

Не знаю помог ли... Вряд ли, конечно.

Просто сочувствующий ;)
PM MAIL ICQ   Вверх
addnr
Дата 14.7.2007, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 18.10.2006
Где: Украина

Репутация: нет
Всего: нет



я тоже еще раз все обдумал и решил не изобретать чтото туманно - непонятное.    для событий создаются специальные функции , вот в них и буду продолжать работать  smile 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0404 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.