7月11日关于设计多窗体共享数据的心得

JAVA GUI设计:
当一个GUI程序需要用到多窗体而且这几个窗体之间存在某种联系(即彼此知道如何到达对方),并且这些窗体需要共享某种数据时,有两种方式可以实现数据的实时共享:

1. 推送方式。即所有窗体都具备同类数据,当他们想查看或修改此数据时就直接对窗体内数据进行修改,修改完之后将其他所有共享该数据的窗体更新。譬如有10个窗体,那么当窗体A对数据进行修改时,更新窗体内该数据,再利用其他9个窗体的set方法更新9次数据
2. 拉取方式。即只有1个窗体拥有共享数据,其他窗体想要查看数据则必须先到达该窗体再用该窗体的get方法访问,同理,如果其他窗体想要修改数据,也必须到达该窗体再用该窗体的set方法修改。

这两种方法各有利弊,推送方式的好处就是省去了访问数据的麻烦,如果想要多次查看则无需多次访问数据储存窗体,但是一旦窗体增多,那么每一次数据更新就会变得十分麻烦。而且一旦某一次的更新没有涉及到全部窗体,那么就会出现“数据错位”,数据也就不会真正共享了(个人认为只要小心就好)。如果窗体不多,修改不频繁,但访问数量很多,建议用推送方式。
拉取方式的好处就是保证了数据的绝对一致性,因为不可能有第二个数据出现。只不过每一次访问都必须访问这一个窗体。也不可以为了访问方便采取数据本地化的方式进行简便,因为共享数据很可能在本地化之后再做修改,那么之前的最新数据也就不是最新的了。如果窗体很多,修改频繁,但是访问数量不多,那么建议用拉取方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值