使用模型来表示视图的整体状态
Posted
技术标签:
【中文标题】使用模型来表示视图的整体状态【英文标题】:Using a model to represent the overall state of a view 【发布时间】:2011-07-04 16:54:20 【问题描述】:是否有表示未链接到单个组件的用户界面状态的标准做法?
例如,Swing 界面可能有一系列选项卡,其约束是每个给定实体类型(这可以表示为 HashSet)一个选项卡只能显示一次。或者一条消息可以给出最后执行的操作的结果。或者,可以将 JPanel 链接到单个实体实例以进行编辑。
【问题讨论】:
不确定你的意思? 简而言之,我想知道视图是否可以/应该有自己的模型。 【参考方案1】:我认为您所描述的是模型-视图-视图模型模式。这在 dot-net 领域风靡一时。 mvvm 的顶部 Google 链接也是 MSDN article,提供了相当不错的概述。
【讨论】:
【参考方案2】:是的,为视图本身创建模型是完全可以接受的,它与应用程序模型完全分离。 Swing 已经在内部这样做了,跟踪元素的布局方式、表格中的行和列以及文本字段中的光标位置。
我建议让您的视图模型逻辑尽可能与实际组件代码松散耦合,以使其更易于维护,例如为不扩展实际 Swing 对象的每个职责或行为创建一个单独的类。
例如,如果我们想确保只有一个特定类型的 JFrame
实例,例如选项对话框甚至主应用程序窗口,则可以使用单例样式的类来完成,该类持有对框架的引用并在有人调用您的方法时返回它,如果它不存在则创建它,如果它隐藏则使其可见。这很常见。
【讨论】:
以上是关于使用模型来表示视图的整体状态的主要内容,如果未能解决你的问题,请参考以下文章