Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Делегирование (перередача) обязаностей классам


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


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

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

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

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




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



и наконец вопрос:
1. Как это сделать практически?
2. В оконном приложении под витду для каждого события создается отдельная функция, может это и есть своего рода контроллер?
3. И если система реализована подобным образом (2.) интерфейс будет отделен от реализации?

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

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

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

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

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

Просто сочувствующий ;)

Автор: addnr 14.7.2007, 22:57
я тоже еще раз все обдумал и решил не изобретать чтото туманно - непонятное.    для событий создаются специальные функции , вот в них и буду продолжать работать  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)