Swing界面和模式
来源:互联网 发布:噪声测量数据 编辑:程序博客网 时间:2024/06/06 11:26
此界面是收银结账界面: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界面设计,就如分析上面这样。好的设计,对于以后的维护和修改,排错都很重要。对于不改暴露在外面的方法是绝对不要暴露,对于逻辑的控制
要集中在一处。这样对于以后的软件开发都是有很大的帮助
- Swing界面和模式
- swing和mvc模式
- swing飞机大战 一 开始界面和选关界面
- java使用工厂模式编写计算器(swing界面)
- Java----AWT组件开发和Swing界面编程(一)
- Java----AWT组件开发和Swing界面编程(二)
- Java----AWT组件开发和Swing界面编程(一)
- Java——Swing界面,接口和事件
- Java Swing GUI多线程之SwingUtilities.invokeLater和invokeAndWait【解决SWING界面卡住情况】
- swing设置windows界面
- Swing界面布局(FormLayout)
- java swing 登陆界面
- Swing界面刷新问题
- Swing界面美化
- Swing界面刷新问题
- swing 界面编程
- swing界面编程记录
- Swing界面嵌套浏览器
- 全虚拟化vs半虚拟化
- ORACLE BITMAP INDEX
- 乌龟驼石碑
- 孩子不是两人婚姻的砝码
- Ubuntu 11.10 server 安装Git 服务器
- Swing界面和模式
- 网页收藏
- 关于类中的const 及 static成员初始化实例
- Linux的5个查找命令
- MySql错误代码1045的解决方案
- 转置理论
- op5 Appliance Multiple Remote Command Execution Vulnerabilities
- 用phpmyadmin更改root密码后无法登陆问题
- 龙的九子