`

JHotDraw之旅: 3.1 MVC架构

阅读更多



 1. JHotDraw框架概述

 

开发应用程序时, 大多数情况下会反复处理一些相同的事情: 管理应用程序的生命周期, 事件处理, 线程管理, 本地化资源持久化处理. 为了节省时间与精力, 开发一个可复用的框架以节省开发成本显得非常有必要. 而应用程序框架正是提供多数应用程序都会用到的基础设施(infrastruture), 以节省重复开发的成本, 并提高程序的可维护性. 框架常以可复用类库形式导入到程序中.

 

框架常常会令人望而却步, 因为框架必须是设计良好的,而良好的设计总是以复杂和庞大为代价. 对于比较小的应用程序来说, 引入大型框架可能使原来的应用程序复杂化, 甚至比没有使用框架还费力. JHotDraw的框架并非是庞大和复杂的(不过随着版本的升级,它已经变得越来越庞大), 它致力于减轻使用框架的成本. 它提供了开发基于swing的应用程序的核心架构,包括程序生命周期控制, 资源管理, 事件处理, 线程管理和本地存储等功能.

 

 

2. 框架架构

 

 整个JHotDraw框架的api都位于包: org.jhotdraw.app . app包定义了Application, ApplicationModel, view等接口. 正如你所想, JHotDraw框架正是构建在MVC模式之上, 其中Application封装了控制应用程序生命周期的方法:

1.    init() 初始化程序;

2.    launch() 启动程序;

3.    start() 开始运行;

4.    stop() 停止运行;

5.    destroy() 退出程序;

 

构建一个基于JHotDraw应用程序框架的基本步骤为:

1.    定义一个View

2.    创建Application,并启动它.

 

详见代码:

 

HelloView.Java

import java.io.IOException;
import java.net.URI;

import org.jhotdraw.app.AbstractView;
import org.jhotdraw.gui.URIChooser;

public class HelloView extends AbstractView{
	public void clear() {
	}

	public void read(URI uri, URIChooser chooser) throws IOException {
	}

	public void write(URI uri, URIChooser chooser) throws IOException {
	}

}

 

HelloApplication.java

import org.jhotdraw.app.Application;
import org.jhotdraw.app.DefaultApplicationModel;
import org.jhotdraw.app.SDIApplication;

public class HelloApplication {

	public static void main(String[] args) {
		Application app=new SDIApplication();
		DefaultApplicationModel model=new DefaultApplicationModel();
		model.setViewClass(HelloView.class);
		app.setModel(model);
		app.launch(args);
	}
}

 

运行效果:

 

 

 

 

图1  org.jhotdraw.app包结构图
 

 

 

图2. JHotDraw MVC架构 

 

 

 

 

 图3 org.jhotdraw.app.Applicatioin 接口契约

 

 

 未完待续.....

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 131.8 KB
  • 大小: 57.7 KB
  • 大小: 33.3 KB
  • 大小: 13.5 KB
7
3
分享到:
评论

相关推荐

    JHotDraw:JHotDraw HTML 编辑器

    #JHotDraw HTML 编辑器 第 39 组 - CSE 2102 组项目 该软件允许用户以 WYSIWYG(所见即所得)格式创建 HTML。 用户只需具备一定的 HTML 知识即可保存、导出、加载和修改文件。 用户将找到用于添加图像、视频和链接的...

    JHotDraw让你成为程序设计的毕加索

    NULL 博文链接:https://c-zhiwu.iteye.com/blog/846908

    java开源图元绘制工具JHotDraw

    2004年下载的JHotDraw开源程序,一个学习设计模式、面向对象设计和开发、java的非常经典的例子。

    JHotDraw源码

    适用于画流程图的类,继承自swing。被广泛使用。

    【转】开源项目JHotDraw分析报告

    NULL 博文链接:https://c-zhiwu.iteye.com/blog/908892

    JHotDraw5.2.zip

    java软件,希有助于java学习者

    jhotdraw.rar_软件设计/软件工程_Java_

    自己收集整理的Jhotdraw相关资料,对于了解和学习jhotdraw的同学会有所帮助。Jhotdraw是著名的设计模式教学用框架,软件设计的经典之作。

    java实现小型函数画图板(含源代码、报告、打包的jar文件)

    java课程设计的一个题目。本程序可以画各种函数曲线,功能有: 1.新建、打开、保存画图 2.多种方式输入函数作图 3.可设置画笔颜色、大小 4.可以放大、缩小 5.可以移动坐标和图像 6.实时显示鼠标经过的坐标 ...

    状态图绘制工具

    借鉴了JHotDraw源码,开发单层状态图绘制工具, 支持三种遍历方法:CPP(中国邮递员算法),广度优先算法,简化的广度优先算法 里面有三个后缀为draw的图形

    论文研究-设计模式变体的描述与验证.pdf

    为解决标准设计模式演化后难以检测的问题,引入设计模式变体思想,以Bridge模式为例,给出了八种常用的变体实现,并以人工形式挖掘了四种开源系统中Bridge模式变体的基准数,接着在Apache Ant 1.6.2与JHotDraw 5.1...

    JAVA上百实例源码以及开源项目源代码

    Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 ...

    JAVA上百实例源码以及开源项目

    百度云盘分享 简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对...

    java开源包1

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,...使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包11

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,...使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包2

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,...使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包3

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,...使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包6

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,...使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包5

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,...使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包10

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,...使用了优秀的JHotDraw 5.2 框架。 activemq...

Global site tag (gtag.js) - Google Analytics