b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

puremvc_unity mvc框架_puremvc 设计模式(3)

电脑杂谈  发布时间:2016-11-22 16:05:20  来源:网络整理

Main 函数很简单只是发送了一个 STARTUP 的消息,该消息会被 StartupCommand 类接受,从而执行相应的初始化动作。

然后,我们来看 StartupCommand 类,这个类很简单,在 StartupCommand 中只是设置了 lookandfeel,然后就调用系统中已经注册了的 LoginScreenMediator 类的对象,然后让其显示在桌面上,限于 Swing 的 EDT 特性,所有这些工作都放在 SwingUtilities.invokeLater 中执行。

本例中 StartupCommand 没有执行太复杂的工作,但是实际运行的系统,就可以根据需要在 StartupCommand 中各种需要执行的初始化工作。

清单 2. StartupCommand.java 的源码

下面我们接着看 LoginScreenMediator 类。

清单 3. LoginScreenMediator.java 的源码

一般来说,Mediator 这个类负责管理视图,即 Swing 控件或者控件组,同时响应用户的操作。本例中的 LoginScreenMediator 管理了 LoginScreen 这个 Swing 控件。LoginScreenMediator 的 show 函数的工作首先初始化 LoginScreen,LoginScreen 就是我们显示给用户看的 JDialog 子类,其中有两个 JLabel,一个 JText Field,一个 JPassword Field 和一个按钮,这里就不列出 LoginScreen 的代码,可以在附件中的源码查看详细代码。

LoginScreenMediator 的 show 函数然后注册了 Login 按钮的 ActionEvent 事件,然后就显示了 LoginScreen 控件。到此为止,用户界面的显示工作就完成了。LoginScreenMediator 类中另外一个需要注意的地方是 listNotificationInterests,在这个方法中该类说明了它所关注的 Notification:LOGIN_SUCCESSFUL 和 LOGIN_FAIL。以后一旦有出现了这两个 Notification,LoginScreenMediator 类的 handleNotification 函数就会被调用。

下面我们来看用户事件处理部分,界面显示之后,一旦用户点击填入用户名和密码,然后点击 Login 按钮,就会触发 LoginScreenMediator 的 public void actionPerformed(ActionEvent e) 函数,在这个函数中只是获取用户名和密码,然后把得到的信息,通过 SUBMIT_LOGIN 这个 Notification 发送出去,因为本类的工作只是负责管理 View,具体如何验证登陆信息则不是它关注的范围,自然有其他 Command 处理。

在前面的 LoginFacade 中注册了一个 LoginCommand 类来处理 SUBMIT_LOGIN 这种类型的 Notification,下面是 LoginCommand 的源码。

清单 4. LoginCommand.java 的源码

LoginCommand 接收到 Notification 之后,首先获取其中的附加信息(用户名和密码),然后通过系统中已经注册的 UsersProxy 来检查用户名和密码是否,如果正确,就发送 LOGIN_SUCCESSFUL 的 Notification,否则就发送 LOGIN_FAIL 的 Notification。本例中 UsersProxy 的功能非常简单,只是检查一个内存中 map,看看接收的用户名和密码,是否和已经保存在 map 中预设值数据是否一致,实际上,这里也可以通过检查 LDAP 或者之类的 UserStore 来执行,效果是类似的。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-21515-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 王崇晓
      王崇晓

      台湾必须无条件接受统一

      • 朱长文
        朱长文

        你就必须像萨达姆那样不怕死

    • 克里斯蒂特林顿
      克里斯蒂特林顿

      就晓得淘宝马上要短命了

    热点图片
    拼命载入中...