Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2013, 13:17   #1
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию Мультиформенное программирование

Всем привет. Интересует следующий вопрос. Как построить красивый ровный код с использованием нескольких форм в приложении. Другими словами: формы должны обмениватсья данными. Я пробовал создавать события в классе Program и реакцию на них в объектах форм. Пробовал устанавливать модификаторы доступа для объектов форм. Пробовал реализацию через Owner'ов... Но ни к чему хорошему это не приводит. Получается нечитаемый, хоть и рабочий, но ненадежный код. Не все получается отслеживать и приходится ставить кучу ограничений. Остается последний вариант. Использоавать глобальные переменные. Создать публичный статический класс со своими объектами, методами и событиями. Насколько это не есть хорошо, объясните пожалуйста, какие могут быть подводные камни и как это повлияет на защищенность и надежность разрабатываемого ПО?
Если есть другие способы обмена данными между формами, расскажите о них пожалуйста, может быть личный опыт, что более приветствуется!
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 07.06.2013, 15:19   #2
Rikcon
 
Регистрация: 23.03.2012
Сообщений: 9
По умолчанию

http://www.cyberforum.ru/windows-for...ead110436.html

Вот этот топик думаю поможет,там все расписано.
Вплоть до того нарушает или не нарушает принципы ООП.
Мне помогло!
Rikcon вне форума Ответить с цитированием
Старый 07.06.2013, 16:04   #3
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 823
По умолчанию

Смотря что делается на этих формах, с чем они работают. В общем случае удобно использовать Команду и Фасад. Сначала надо решить архитектурные задачи. Что и как инкапсулировать, может быть применять паттерн стратегий или состояний, сделать для них общую точку входа в singletone, который будет разруливать в какое состояние должна прийти система. Или использовать что-то вроде паттерна фабрики, которая помимо создания объектов будет сообщать все наблюдателю, чтобы он обновил данные для других форм. Не могу сказать, потому что реализация будет зависит от задачи. Принципы разработки (инкапсулируйте то, что меняется или стремитесь к слабой связанности) приводить нет смысла, они описаны. Используйте то, что придумали и обточили другие, универсальных решений нет, но есть накопленный опыт.
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программирование 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