`

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
分享到:
评论

相关推荐

    JHotDraw5.2.zip

    JHotDraw的特色在于它的灵活性和可扩展性,它使用了模型-视图-控制器(MVC)的设计模式,使得开发者能够独立地修改和扩展各个部分。此外,JHotDraw支持拖放操作、图形的复制粘贴、撤销重做等常见功能,使得图形设计...

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

    JHotDraw的设计遵循了MVC(Model-View-Controller)架构模式,这种模式将应用逻辑、用户界面和数据模型分离,使得代码更易于维护和扩展。同时,它采用了插件化设计,使得开发者可以方便地添加新的图形元素或工具,...

    JHotDraw源码

    4. **模型-视图-控制器(MVC)架构**:JHotDraw遵循经典的MVC设计模式,`Drawing`类代表模型,存储图形组件;`DrawingView`是视图,负责渲染模型;`DrawingEditor`则是控制器,协调模型和视图的交互。 5. **事件...

    JHotDraw:JHotDraw HTML 编辑器

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

    java开源图元绘制工具JHotDraw

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

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

    Jhotdraw的核心特性之一是它的模型-视图-控制器(MVC)架构,这是软件设计中的一个关键模式。MVC将应用程序分为三个主要部分:模型负责处理数据,视图负责显示数据,而控制器则负责处理用户输入并协调模型和视图。...

    状态图绘制工具

    本文将深入探讨如何使用一款基于JHotDraw源码开发的单层状态图绘制工具,该工具支持三种不同的遍历算法:CPP(中国邮递员算法)、广度优先算法和简化的广度优先算法。 首先,让我们了解JHotDraw。JHotDraw是一个...

    Java画图源代码

    4. **JHotDraw框架**:压缩包中的"jhotdraw"可能是一个开源的图形编辑框架,它提供了图形绘制和编辑的功能,常用于创建图形编辑器。JHotDraw提供了一些基本图形类,如矩形、椭圆、线等,并支持图形的拖放、缩放、...

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

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

    java开发的画图工具源码IDEA工具

    JHotDraw是一款基于Java的开源画图工具,它提供了丰富的图形绘制和编辑功能,非常适合进行设计工作或者教学演示。该工具的源码开放,使得开发者可以深入学习其内部机制,同时也可以根据需求进行定制化开发。 ...

    NetLogo-手冊

    * JHotDraw:一個 Java 的繪圖庫。 * MovieEncoder:一個影片編碼庫。 * JpegImagesToMovie:一個將 JPEG 圖片轉換為影片的庫。 * JOGL:一個 Java 的 OpenGL 實現。 * Matrix3D:一個三維矩陣庫。 * ASM:一個 Java...

    netlogo用户手册

    NetLogo依赖于一些第三方库,如MersenneTwisterFast用于随机数生成,Colt提供高性能的数学和统计函数,MRJ Adapter用于Mac OS X平台的兼容,Quaqua提供跨平台的GUI外观,JHotDraw用于图形编辑,MovieEncoder和...

    基于SVG的图形交换标准及规范化研究

    在实现过程中,作者设计并开发了一个基于开源软件JHotDraw的图形编辑器。JHotDraw是一款用于创建图形用户界面的工具,它提供了一套图形编辑的基础框架。通过分析电气连接图的结构并设定图形转换规则,该编辑器能够...

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

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

    IntelliJ IDE热部署最新插件

    除了JRebel,还有一些其他开源的热部署解决方案,如`JHotDraw`或`DCEVM`,它们也可以与IntelliJ IDEA集成,实现类似的功能。这些工具各有优缺点,选择哪一种取决于你的具体需求和预算。 总的来说,热部署插件是现代...

    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...

Global site tag (gtag.js) - Google Analytics