【发布时间】:2011-12-13 08:41:48
【问题描述】:
我有一个带有嵌套面板的 GUI(带有嵌套面板等选项卡)。我需要将域对象传递给深度嵌套的面板。我可以想到两种方法:
在一处实例化所有 gui 对象,例如框架类。那 会使传递域对象变得简单,但 Frame 类会 巨大且难以维护。
每个面板都有自己的类,我们在其中对其进行实例化和布局
成分。现在它易于维护并且类很干净,但是如何
传递我的域对象链?我不想连锁传递 他们通过甚至不应该知道他们的面板的构造函数
存在。顶层面板将有大量的这些对象 开始。
Niether 方式似乎是一种解决方案。您通常如何处理这个问题?
【问题讨论】:
-
一个有趣的问题,我不确定专业人士如何解决这个问题,但一个想法是域对象(无论是什么)不会直接传递给 GUI,而是传递给它的模型,并且 GUI 将附加侦听器以对模型中的更改做出反应。谢谢你的问题。我要听这个帖子,看看专业人士怎么说。
-
此链接可能很有用:Java GUI Development: Reintroducing MVC。我知道我觉得它很吸引人!
-
MVC 是正确的指导原则:每个视图都应该包含对其所侦听的模型的引用。 IMO,问题中没有足够的细节可以说更多。另请参阅answer。
-
@HovercraftFullOfEels - 您应该发布该链接作为答案。很有启发性。希望我在第一次开始处理 Swing 时就知道这一点。
标签: java oop swing design-patterns