我有4个实体:
人(姓名,电子邮件等)
我需要3个屏幕,除了对应部分之外每个屏幕一个,我在几种设计可能性中犹豫不决。目标是避免给定屏幕中存在父实体已存在屏幕的重复字段。例如,如果我为Person设计了一个屏幕,我想以某种方式在子屏幕实体的屏幕中重复使用此屏幕(而不是复制字段,例如'name')。
我提供了以下选项:
对platfom screen / xml继承非常感兴趣,这似乎很适合我的问题,但它确实只适用于平台屏幕,而不是用户设计的,不幸的是。
设计一个(智能)屏幕,您可以在其中以某种方式选择实体类型,然后屏幕会动态添加GUI组件以处理实体的细节。屏幕将更加复杂,并且主要通过代码进行管理,而不是视觉设计,这让我很烦恼(为什么还有视觉设计师)。除非有设计提示。
设计3个不同的屏幕,但有办法重复使用之前设计的视觉的字段组。我知道我可以在代码中完全生成GUI组件。
为实体细节设计3个编辑器屏幕,并有一些方法来组合/嵌入它们,但在这种情况下,我可能不得不将实体模型从继承更改为组合,以使其更容易。
现在我倾向于选项2),当他们处理的细节不再相关时,使用例如框架折叠自己,但我担心它不会起作用,因为编辑器绑定到特定的类。
CUBA经验丰富的开发人员会建议什么?
答案 0 :(得分:5)
这取决于您可能重复使用的控制器逻辑量。为代码重用复杂化代码结构真的有回报吗?我认为应该至少有10个具有复杂验证/动态外观逻辑的常用字段才能重用。
我会选择框架。将布局和关联逻辑的可重用部分提取到框架中,然后将框架嵌入到实体编辑器中。
通过使用框架,您可以将任何批量屏幕分解为更小,更易于管理的部分。
此外,可以将包含非平凡逻辑的字段验证器,自定义字段生成器,表格样式提供程序,格式化程序等提取为上级类。因此,它们可以在整个项目中重复使用。