快速业务通道

基于pureMVC的Swing程序的入门介绍 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

基于pureMVC的Swing程序的入门介绍

时间:2011-01-16 BlogJava kissjava

用过Flex的人都知道有个基于MVC的puremvc框架,这个框架因为小巧简单很受欢迎。

PureMVC框架的目标很明确,即把程序分为低耦合的三层:Model、View和Controller。降低模块间的耦合性,各模块如何结合在一起工作对于创建易扩展,易维护的应用程序是非常重要的。在PureMVC实现的经典MVC元设计模式中,这三部分由三个单例模式类管理,分别是 Model、View和Controller。三者合称为核心层或核心角色。PureMVC中还有另外一个单例模式类—Facade,Facade提供了与核心层通信的唯一接口,以简化开发复杂度。

这里先放这个PureMVC这张著名的图:

这里就简单介绍了PureMVC一些简单知识,详情可以到puremvc.org 查看。这里我们不大去讲他的原理,只是通过一个例子来简单说下PureMVC的机制如何来运行一个Swing项目。

回到本文重点,因为PureMVC的小巧简单,所以作者也顺带着把他翻译成了C#,ColdFusion,Haxe,Java ,JavaScript ,Objective C ,PHP ,Python ,Ruby,那现在我们就以基于Java来做个Demo来讲讲PureMVC的运行原理。这个例子是一个小型系统的简单实现,首先弹出一个对话框,输入用户名和密码成功后进入系统,进行相关操作,所有动作都是利用PureMvc的机制发送消息,做到MVC的三层Model、View和Controller 分离。

由上图知道我们,程序的入口是Facade进去的,这个类是一个单类,一般我们都会继承这个类重写Facade,在程序启动的时候用他我们来注册命令等相关信息。所有的信息发送通过他来发送。在使用的时候我们一般继承他的initializeController方法用于加载初始化的一些 Command,比如点击菜单打开一个界面的信息,都是在这里预先注册,如代码:

public class ApplicationFacade extends Facade {     private static ApplicationFacade instance= null;     protected ApplicationFacade(){         super();     }     public static ApplicationFacade getInstance(){         if(instance == null)             instance = new ApplicationFacade();         return instance;     }     @Override     protected void initializeController() {         super.initializeController();         /** *//**          * 注册初始化的Command          * **/         registerCommand(ApplicationConstants.INITSTAR, InitStartCommand.class);     }     /** *//**       * 系统初始化完毕后调用这个发送INITSTAR,监听这个命令的Command       * 就会加载所有的Command       * **/     public void startup(){         sendNotification(ApplicationConstants.INITSTAR, null, null);     } }

基于pureMVC的Swing程序的入门介绍(2)

时间:2011-01-16 BlogJava kissjava

注册完了预加载的Command的命令后,我们的系统初始化完毕后点击一个按钮需要打开一个页面,这个事件就会发送出一个消息,至于发给谁他不管,这其中如果有注册了的Command监听了这个发送的消息,那么他就会做进一步的操作,如图所示:

当这个消息给send出来后,当有Command接受到这个消息后就会做他感兴趣的事。所有的发送消息的方法都是通过sendNotification这个方法发送的这个方法是这样定义的:

public void sendNotification(String arg0, Object arg1, String arg2);

arg0:就是发送的消息,常量字符串,如上面代码的INITSTAR,一般都会放在专门存放常量表中。

arg1:可以存放任何东西,比如要传一些值

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号