JHotdraw之旅.一.jhotdraw简介

JHotdraw之旅.1.jhotdraw简介

JHotDraw之旅  

 

    JHotDraw简介

项目简介

 

 


JHotdraw之旅.一.jhotdraw简介
 

JHotDraw是面向文档的应用程序框架, 它能通过桌面或者web的方式来发布. 早期的JHotDraw则是以二维图形编辑器的Java图形框架而闻名. JHotDraw起源于Erich Gamma的一个教学实例。更早期的JHotDraw可上溯到1992年由Johnson采用smalltalk开发的hotdraw, 而hotdraw则是参考1989年weinand用C++实现的ET++框架.

 

JHotDraw是基于LGPL协议的发布的, 即其代码是完全开发的,并可以作为第三方类库用于商业用途(修改或衍生代码则必须遵循LGPL). JHotDraw 采用了大量的设计模式来处理Java矢量图形开发中的各种难题由于JHotDraw具有良好的框架,很好的复用性和扩展性, 很快成为一个Java二维矢量图开发的应用框架。而历经了几个版本的发展,JHotDraw已经成为一个成熟的面向文档应用程序框架。本文的目的在于研究JHotDraw的框架,探讨与分析其源码, 以学习软件架构及设计模式的具体运用等知识.

 

JHotDraw项目主页位于sourceforge,你可以在http://sourceforge.net/projects/jhotdraw/ 上下载最新的版本。当前最新的版本为7.5。JHotDraw有详尽的文档, 而针对较新的版本, 学习JHotDraw唯一可用的资源也是这些文档, 对于研究其架构这些文档已经足够.

JHotDraw最初采用的语言并非Java,而是SmallTalk,项目命名为HotDraw。人们一开始是因为ET++(一个C++应用程序框架)而关注JHotDraw。而Erich GammaJHotDraw应用于教学,主要是通过JavaDoc的方式对程序进行说明,并提供相应的教程来说明框架设计的较为重要的地方。这里,我们唯一可用的资源也是JHotDraw的文档(JavaDoc),虽然JHotDraw的文档并非详尽,但对于研究其框架却已经足够。

 

 JHotDraw特性

作为一个教学实例, JHotDraw 闻名于它的 excellent framework(构架良好),well design(设计良好),robust  and reliable(可靠与健壮). 整个程序存在大量的设计模式与OO设计原则,  除了用于教学, 它还是一个极好的可视化程序的框架, 图形编辑器工具箱, ect.

目前, 基于JHotDraw的程序有很多, 国外的见JHotDraw Applications , 国内的有千鸟的jphotoshop .

鉴于JHotDraw的特性, 这里将开始一段JHotDraw之旅, 探究其框架与设计, 分析重要类的源码. 其最终目的在于提升面向对象程序设计与软件架构的能力. 如果你已经精通软件架构或设计模式(excellent in design pattern), 或者你讨厌设计模式, 那么这些文章可能不适合你.

 

 

相关链接:

  1. http://www.jhotdraw.org/ JHotDraw项目首页
  2. http://sourceforge.net/projects/jhotdraw/ JHotDraw下载
  3. http://dirkriehle.com/computer-science/research/dissertation/chapter-8.html
  4. http://article.yeeyan.org/compare/14599/4185 JHotDraw让你成为程序设计的毕加索
  5. http://softarch.cis.strath.ac.uk/PLJHD/Patterns/JHDDomainOverview.html JHotDraw Pattern Language
  6. http://www.randelshofer.ch/oop/jhotdraw/index.html  在线演示
  7. http://st-www.cs.illinois.edu/users/brant/HotDraw/HotDraw.html 5.1版首页
  8. http://www.c2.com/cgi/wiki?HotDraw 一些关于JHotDraw的资源汇集
  9. http://twiki.org/cgi-bin/view/Wikilearn/JHotDraw 5.1版wiki
  10. http://personal.cis.strath.ac.uk/~murray/efocswww/papers/EFoCS-38-2001.html Patterns for JHotDraw
  11. http://st-www.cs.illinois.edu/users/brant/HotDraw/HotDraw.html 早期版本的hotdraw主页与下载