XModeler是本人近两年前写的一个小工具,这次为配合<大卫的Design Patterns学习笔记>的推出,对其进行了一些小的扩充。
1、XModeler简介
最初想编写一个简单的建模软件是很久以前的事,开始计划用C++来写,希望编个程序能够实践一下《设计模式》书上的23种设计模式,同时,又能巩固自己所学的UML方面的知识,但是,很快就发现实在是举步唯艰,其一是因为自己对设计模式的理解停留在理论层面上,其二也是因为自己对面向对象设计的理解还不够深入。后来,重新读了《设计模式》、《Design Patterns Explained》、《Design Patterns Java Companion》等书,对设计模式有了进一步的认识;再后来,因为工作关系,开始重拾丢在书箱里的Java书出来研读,才突然发现,所谓的设计模式在Java语言中其实随处可见,Command模式、Observer模式、Adapter模式、Singleton模式等的应用在Java中随处可见,我最终决定用Java语言来编写这个简单的建模软件,并将其命名为XModeler(X是我的姓的第一个拼音字母,同时也有eXtendable-可扩展的意思,我希望通过合理的设计使这个小工具能够有很好的可扩展性,当然这在目前还只是个梦想,^_^)。
目前,XModeler只提供了最简单的类图绘制功能,并且没有提供如反身关联、扩展机制、代码生成等的支持(实现前两者很简单,只是暂时没有考虑)。目前主要面向Java语言(虽然UML是语言无关的,但当具体到语言细节时,Unified是不可能的),因此,部分特性不适合C++语言(如final、abstract等关键字相关的内容),反过来,对C++语言的部分特性如virtual没有提供支持(因为Java没有这个关键字,生来就支持这个东东)。
2、说明
由于最近工作十分繁忙,加之正在筹划启动一个新的研究项目,XModeler的完成时间比原定计划晚了整整一个月,致使早已写完的<大卫的Design Patterns学习笔记>的推出时间也同样延误到了现在。
数日前,女友问我“你这东西能做得比Rational Rose好吗?”,我随口而出“给我十个人,我能用两年时间赶上Rational Rose”,“那让你自己做岂不是要20年,甚至更多,何况你还是在业余时间做?”,我不禁愕然,一个人能够工作几个20年呢?有些事情,我们独自做的话,一辈子只能做那么一两件,但如果几个、几十个甚至成千上万个人来做,一个人一辈子就可以参与和体会很多次。
n久前在VCKbase上提议成立开源社区,反响异常冷淡,大大出乎我的意料。原本打算将XModeler作为一个候选Project交给VCKbase社区,也只好作罢。
这次推出XModeler0.0.1完全是为了配合<大卫的Design Patterns学习笔记>的推出,随后推出的<大卫的Design Patterns学习笔记>全部类图均采用XModeler绘制。我会在XModeler0.0.2推出时公布0.0.1版的源码,但正如上面提到的,目前工作十分繁忙,加之正在筹划启动一个新的研究项目,何时推出新版本,尚不在计划内。
以下是XModeler的运行图例:
![](/images/blog_csdn_net/billdavid/136320/o_screenshot.gif)
使用者需安装有JDK1.4或以上版本,将下面的.zip包解压到本地后执行其中的run.bat以启动XModeler。
下载XModeler
最后,XModeler目前还十分不完善,甚至还存在一些Bug及与UML或Java语言特性相违背的地方,欢迎各位指正。
Bill David 于 2005.07.18