![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба
Регистрация: 13.01.2009
Сообщений: 1,353
|
![]()
Всем привет. Интересует следующий вопрос. Как построить красивый ровный код с использованием нескольких форм в приложении. Другими словами: формы должны обмениватсья данными. Я пробовал создавать события в классе Program и реакцию на них в объектах форм. Пробовал устанавливать модификаторы доступа для объектов форм. Пробовал реализацию через Owner'ов... Но ни к чему хорошему это не приводит. Получается нечитаемый, хоть и рабочий, но ненадежный код. Не все получается отслеживать и приходится ставить кучу ограничений. Остается последний вариант. Использоавать глобальные переменные. Создать публичный статический класс со своими объектами, методами и событиями. Насколько это не есть хорошо, объясните пожалуйста, какие могут быть подводные камни и как это повлияет на защищенность и надежность разрабатываемого ПО?
Если есть другие способы обмена данными между формами, расскажите о них пожалуйста, может быть личный опыт, что более приветствуется!
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
![]() |
![]() |
![]() |
![]() |
#2 |
Регистрация: 23.03.2012
Сообщений: 9
|
![]()
http://www.cyberforum.ru/windows-for...ead110436.html
Вот этот топик думаю поможет,там все расписано. Вплоть до того нарушает или не нарушает принципы ООП. Мне помогло! |
![]() |
![]() |
![]() |
#3 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
![]()
Смотря что делается на этих формах, с чем они работают. В общем случае удобно использовать Команду и Фасад. Сначала надо решить архитектурные задачи. Что и как инкапсулировать, может быть применять паттерн стратегий или состояний, сделать для них общую точку входа в singletone, который будет разруливать в какое состояние должна прийти система. Или использовать что-то вроде паттерна фабрики, которая помимо создания объектов будет сообщать все наблюдателю, чтобы он обновил данные для других форм. Не могу сказать, потому что реализация будет зависит от задачи. Принципы разработки (инкапсулируйте то, что меняется или стремитесь к слабой связанности) приводить нет смысла, они описаны. Используйте то, что придумали и обточили другие, универсальных решений нет, но есть накопленный опыт.
Не давай организму поблажки, каждый день тренируй его в шашки..
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
программирование | naymova18 | Общие вопросы C/C++ | 1 | 14.11.2012 13:17 |
программирование | naymova18 | Общие вопросы C/C++ | 1 | 14.11.2012 09:24 |
определить как вытащить эту всю информацию из тегов музыкального файла (файлы разных форматов, к примеру:mp3, .ogg, .wav, .wma С++ | DvAlex | Помощь студентам | 5 | 09.10.2012 14:24 |
Программирование или web-программирование? | Дмитрий Батогов | Помощь студентам | 3 | 23.06.2011 14:14 |
программирование на си | фамил | Общие вопросы C/C++ | 3 | 31.05.2008 20:03 |