| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .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. В нём функцию которая обрабатывает поступившее сообщение и передаёт управление на какой-нибудь необходимый метод. Эти методы могут создавать формы или например считывать инфу с какой-нибудь базы. Не знаю насколько эта концепция имеет право на существование Тем более, что я пока ни как не соображу как с помощью интерфейса заставить в MyForm создать событие, которое бы отсылало такие вот сообещния в главную форму. Не знаю помог ли... Вряд ли, конечно. Просто сочувствующий ;) |
| Автор: addnr 14.7.2007, 22:57 |
| я тоже еще раз все обдумал и решил не изобретать чтото туманно - непонятное. для событий создаются специальные функции , вот в них и буду продолжать работать |