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

用过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);
    }
}

时间: 2024-07-29 00:10:41

基于pureMVC的Swing程序的入门介绍的相关文章

SQL Server 2005基于消息的应用程序介绍

基于消息的应用程序并不是一个新概念,但一直以来,从头编写这样的应用程序都相当困难.我将在一系列三篇文章中讨论一个建立异步消息应用程序的新平台,本文为第一篇,我将在其中说明基于消息的应用程序这一概念,以及一个建立包含在SQL Server 2005中的这些应用程序的新型基础程序. 基于消息的应用程序介绍 处理消息的应用程序是大体上会成功的应用程序.实际上,大多数大型应用程序都应用了某种类型的消息处理.这种处理可能相当简单,例如,把一个文件放在网络共享中,以便另一个应用程序能够处理这个文件:之后,你

[Python爬虫] scrapy爬虫系列 <一>.安装及入门介绍

        前面介绍了很多Selenium基于自动测试的Python爬虫程序,主要利用它的xpath语句,通过分析网页DOM树结构进行爬取内容,同时可以结合Phantomjs模拟浏览器进行鼠标或键盘操作.但是,更为广泛使用的Python爬虫框架是--Scrapy爬虫.这是一篇在Windows系统下介绍 Scrapy爬虫安装及入门介绍的相关文章.         官方 Scrapy  :http://scrapy.org/         官方英文文档:http://doc.scrapy.or

[Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)

        最近在使用Python爬取网页内容时,总是遇到JS临时加载.动态获取网页信息的困难.例如爬取CSDN下载资源评论.搜狐图片中的"原图"等,此时尝试学习Phantomjs和CasperJS来解决这个问题.这第一篇文章当然就是安装过程及入门介绍. 一. 安装Phantomjs         下载地址:http://phantomjs.org/        官网介绍:          PhantomJS is a headless WebKit scriptable w

Matlab与.NET基于类型安全的接口混合编程入门

原文:[原创]Matlab与.NET基于类型安全的接口混合编程入门 如果这些文章对你有用,有帮助,期待更多开源组件介绍,请不要吝啬手中的鼠标.  [原创分享]Matlab.NET混编调用Figure窗体 http://www.cnblogs.com/asxinyu/archive/2013/04/14/3020813.html   [原创]开源.NET下的XML数据库介绍及入门  http://www.cnblogs.com/asxinyu/archive/2013/03/25/2980086.

Bag-of-words模型入门介绍文章

一篇给力的Bag-of-words模型入门介绍文章 引言   本blog之前已经写了四篇关于SIFT的文章,请参考九.图像特征提取与匹配之SIFT算法,九(续).sift算法的编译与实现,九(再续).教你一步一步用c语言实现sift算法.上,及九(再续).教你一步一步用c语言实现sift算法.下.  上述这4篇文章对SIFT算法的原理和C语言实现都做了详细介绍,用SIFT做图像匹配效果不错.现在考虑更为高层的应用,将SIFT算法应用于目标识别:发现图像中包含的物体类别,这是计算机视觉领域最基本也

基础Python的socket编本入门介绍

  基础Python的socket编本入门介绍          这篇文章主要介绍了最基础的Python的socket编程入门教程,包括最基本的发送和接受信息等内容,需要的朋友可以参考下 本文介绍使用Python进行Socket网络编程,假设读者已经具备了基本的网络编程知识和Python的基本语法知识,本文中的代码如果没有说明则都是运行在Python 3.4下. Python的socket功能封装在socket库中,要使用socket,记得先import socket,socket库的详细介绍参

Win10 IoT C#开发 2 - 创建基于XAML的UI程序 及 应用的三种部署方法

原文:Win10 IoT C#开发 2 - 创建基于XAML的UI程序 及 应用的三种部署方法 Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 上一章我们讲了Raspberry安装Win10 IoT系统及搭建Visual Studio 2015开发环境的方法(http://www.cnblogs.com/cloudtech/p/5562120.html)

Swing程序最佳架构设计—以业务对象为中心的MVC模式(转)

  前言: 我打算写一系列关于Swing程序开发的文章.这是由于最近我在做一个Swing产品的开发.长期做JavaEE程序,让我有些麻木了.Swing是设计模式的典范,是一件优雅的艺术品,是一件超越时代的产品! 有机会作Swing软件的开发,让我非常有感觉! 呵呵,希望有机会能够用Java3D编写软件,那种感觉一定更棒! Java和Swing都是杰作.我这个人对别人一向很挑剔的,能够得到我由衷地赞誉,可想而知它们有多优秀了.奇怪的是,它们居然一直都无法占领桌面市场.有人说这是技术的原因.我认为这

.NET读写Excel工具Spire.Xls使用(1)入门介绍

原文:[原创].NET读写Excel工具Spire.Xls使用(1)入门介绍 在.NET平台,操作Excel文件是一个非常常用的需求,目前比较常规的方法有以下几种: 1.Office Com组件的方式:这个方式非常累人,微软的东西总是这么的复杂,使用起来可能非常不便,需要安装Excel,对于服务器,有时候还需要为配置IIS权限.折腾人,看到很多人在群里面使用这个东西,出现各种抓狂的错误: 2.开源.NET组件NPOI方式:这个方式应该是很多人都在使用的,这个开源的组件相比第一种,虽然稍微简单了点