根据数据对象的专用类型确定数据对象的表示类?
我倾向于有一个类来描述一般概念和子类来描述该概念中的差异。例如,
Polygon
< | - {Rectangle
,Triangle
等}。
但是,我经常发现我对这些层次结构有各种各样的表示。例如,我想保持图形表示(例如,QPolygon),或物理表示(质量,centerOfMass)等与我拥有的另一个表示分开。
在我的例子中,我有一个纯数据对象的层次结构(Command
< | - {WaitCommand
,UnknownCommand
等}},我有一个匹配的GUI表示每个数据类(WaitCommandPanel
,UnknownCommandPanel
)。
我的问题是,一旦我构造了数据表示,我需要从数据到GUI的跨越。
给定一个数据对象列表,我希望能够构造相应的GUI元素,但保持两个表示分开。
一个[糟糕的]解决方案是每个Command
具有返回其GUI表示的能力(即,Command::getPanel()
)。我不喜欢这个,因为我的数据类现在有代表性代码。
另一个解决方案(我暂时采用)是进行查找。也就是说,在启动GUI时,给定一个Command
s列表(泛化),该函数根据其专用类型确定要创建的对象。我也不喜欢这个。
有什么建议?
没有找到相关结果
已邀请:
2 个回复
伐教爸
庞协腿宛炯