Swing界面和模式



此界面是收银结账界面:SaleOrderTemp(临时订单)会传递给收银结账界面(CheckOutDialog).然后对订单进行相应的处理和验证


CheckOutDialog由MemberPanel(会员面板),FavorablePanel(优惠面板),CheckOutType(支付方式和接单方式面板),ButtomPanel(底部面板)

逻辑分析:

对于MemberPanel,FavorablePanel,CheckOutType三个面板,对于任何一个面板的改变,都可能涉及另外两个面板的界面改变,和对SaleOrderTemp的操作。

为了达到好的设计需求和维护性,应当采用好的设计。

首先分析CheckOutDialog和MemberPanel,FavorablePanel,CheckOutType的关系,CheckOUtDialog应该是负责接受三种面板的变化,然后对其余的面板做出相应的GUI

变化,所以CheckOutDialog可以作为观察者,而把其他面板作为主题,在把CheckoutDialog作为观察者的同事,也把其作为中介者,协调三个面板之间的关系。所有对于其

他界面的相应都应该在其中。所以我们可以在CheckOutDialog中定义一个其他三个面板调用的方法UpdateGUI()


其次对于CheckOutDialog和三个界面的参数传递,采用Visitor模式(不是设计模式中的Visitor,其实相当于传递对象参数).当中介者初始化三个面板的时候,会传递Visitor和observe对象给三个面板。在其他三个面板中对信息的改变对设置到Visitor中,这样在CheckOutDialog中的UpdateGUI就可以做相应的处理.


然后对于三个面板,MemberPanel,FavorablePanel,CheckOutType面板,经过分析,这三个面板对外的接口应该只有三个。首先CheckOutDialog会初始化三个面板,所以三个面板都应该有初始化构造函数,接受visitor和observer对象。还有当每次CheckOutDialog对话框,会初始化以前的参数到界面,所以这三个面板就会有restoreGuiInfo方法,其次,当其中任何一个面板改变的时候,都有可能涉及到剩下的面板的改变,所以三个面板都有自己的updatePanelGui方法,所以分析,三种方式如下

构成函数(Visitor,Observer)

restoreGuiInfo()

updatePanelGui()

不会在处在其他的方式,


可能大家还会有疑问,对于其中一个面板的改变,怎么让另外两个面板知道要改变,我们可以在Visitor中设置相关变量来判断。


所以对于这样一个GUI界面设计,就如分析上面这样。好的设计,对于以后的维护和修改,排错都很重要。对于不改暴露在外面的方法是绝对不要暴露,对于逻辑的控制

要集中在一处。这样对于以后的软件开发都是有很大的帮助




















  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
随着计算机与软件的进步,人机交互越来越需要发展,计算机和用户之间的 接口也越来越具有方便用户的特性,从而制作用户界面系统也越来越复杂和花费 人力,时间。因此为了节省程序设计者的时间,有必要研究界面模板技术。 Java是一种灵活的、跨平台的、彻底地面向对象的程序设计语言。由于Java 具有众多特点是跨平台的优点,采用java编写应用程序界面和web界面越来越流 行。而swing是目前Java中的一个重要的界面工具组类库,是建立GUI的强大工 具,它比起Java的其他界面组件来说具有更多的优点,相信以后用java swing佑U作 的界面的软件和web页面会越来越多,所以研究和设hLjava swing界面模板有着 非常重要的意义。 本文首先引入和介绍两种设计模式,flpMVC模式和主控模式,并且详细描 述和举例说明]"swing类库与MVC模式之间的关联。然后本文结合国内外现有的 交互式用户界面模型的特点,提出了一种基于java/swing和两种设计模式的交互 式界面的设计思想与具体实现方案。该方案包含用户界面代理,能提供给用户图 形的可视化方式来设计界面的视图,和控制器的设计;这套方案包括了几乎所有 的基本控件,例如对话框,滚动条,分割栏,文本框等的界面生成器;然后以此 方案做了一个示例程序,即利用swing类库和基于前面介绍的设计模式,以按钮 为例创建了一个界面生成器,该按钮生成器能按照用户输入的属性生成具有该属 性的swingYXL格的按钮,并且生成相应的java代码,用户也可以通过代码来改变这 个按钮。也就是说它具有中间件的功能,能将界面内容保存在模板实例中以便修 改及重用,并能根据模板实例生成界面程序源代码。接着讲述了其他swing控件 如编辑框,滚动条,弹出菜单等的做法,由此形成了一个开发swing风格界面的 集成界面模板工具。最后,文章结尾总结了提出和研究设计的这套方案在意义和不足,以及进一步的工作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tof21

支持原创

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值