Здравствуйте, Dimonka, Вы писали:
D>Вот решили поставить перед собой задачку полностью отделить интерфейс пользователя от данных. Но что-то мне подсказывает, что так просто это сделать не получится, потому что данные слишком разнородные. D>Постараюсь на пальцах обьяснить, что задумано: D>Программа будет разделена на модули. D>Базовый класс модуля будет иметь "Представления" (диалоги или панели), "Представления будут иметь свои команды, которые будут выводится на тулбар и в меню, и контролы, которые будут описаны в XML виде. D>А уже конкретные реализации модулей будут содержать изменяемые данные. D>Допустим с простыми данными (строки, числа итд) всё понятно. Каждый контрол имеет идентификатор данных (строковый или числовой), с которыми он связан и запрашивает Представление дать ему данные, Представление запрашивает модуль, а модуть уже решает, какие данные надо передать (цепочка обязанностей). D>А вот что делать со сложными данными? Допустим надо отобразить какую-нибудь таблицу со списком элементов, которые хранятся в каком-нибудь классе модуля. И этот список может динамически меняться. Как отобразить данные из класса? Передавать ссылку на класс в контрол? Делать промежуточный класс (адаптер, который превратит класс в подобие дэйтасета) для связи контрола и класса данных?
D>Подскажите, как решаются такие задачи.
Достойная задача! Переходи полностью на прикладные (бизнес) объекты БО. Все твои представления д.б. реализованы в терминах БО. Для него д.б. определены операции создания/сохранения/поиска, а также получения списков подчиненных БО. UI в этом случае придется делать на простых элементах. Рассмотри вариант автоформ, т.к. уровень БО полностью описывает и сами объекты и связи между ними.