GEF: Как отделить информацию о домене от информации о представлении с помощью заранее определенной сторонней модели? - PullRequest
0 голосов
/ 17 марта 2012

Я нахожусь в процессе разработки ГЭФ View (который позже превратится в ГЭФ Editor), и я делаю это с помощью Книги ГЭФ .

В главе 8.1 («Модели ГЭФ») в книге построена модель, которая смешивает Информация о домене и Информация о представлении (которая щедро принимается ): GenealogyElement является суперклассом abstract для остальных объектов модели (кроме одного).

GenealogyElement заботится о местоположении и изменениях местоположения его подклассов (Person, Marriage) и т.п., которые сами включают фактическую информацию о домене. Кстати, исходный код можно найти на сайте books .

Я бы не возражал против этого сам (даже если это, вероятно, «плохой стиль»), но я использую стороннюю модель, которую я не могу изменить , т. Е. Я не могу изменить класс ThirdPartyNode для расширения, скажем, ExampleElement.

Конечно, можно написать свою собственную модель против сторонней, создать abstract класс ExampleElement и позволить новому классу ExampleNode расширить как ExampleElement, так и ThirdPartyNode. Я мог бы закончить тем, что сделал это, но действительно хочу сначала включить другие возможности, поскольку создание другой модели очень много печатает, и потенциально лишнее (не так ли?).

Какие есть варианты для разделения обоих типов информации?

Заранее спасибо!

1 Ответ

1 голос
/ 04 мая 2012

Я решил аналогичную проблему, создав другую модель, содержащую данные представления (т. Е. Положение элемента) и ссылку на фактическую модель данных. Вы только должны тщательно обдумать, как модель данных сообщает об изменениях редактору.

...