我正在开发 GEF View
(稍后将演变为 GEF Editor
),我在GEF Book的帮助下这样做。
在本书的第 8.1 章(“GEF 模型”)中,构建了一个混合了域信息和表示信息的模型(这是被慷慨承认的):它是其余模型对象(但只有一个)GenealogyElement
的超类。abstract
GenealogyElement
负责其子类(Person
, Marriage
)等的位置和位置变化,这些子类本身包括实际的域信息。顺便说一句,源代码可以在书籍网站上找到。
我自己不介意这样做(即使这可能是“糟糕的风格”),但我正在使用我无法更改的第三方模型,即我无法更改类ThirdPartyNode
以扩展,例如,ExampleElement
.
一种选择当然是针对第三方的模型编写我自己的模型,创建一个abstract
类ExampleElement
,并让一个新类ExampleNode
同时扩展ExampleElement
和ThirdPartyNode
。我可能最终会这样做,但我真的想首先包含不同的可能性,因为创建另一个模型需要大量输入,并且可能是多余的(不是吗?)。
分离这两种信息类型的选择是什么?
提前致谢!