现在,工程也建好了,结果也看到了,最终的欣喜的结果。于是我就思考一个问题了,这么好的东西,到底是怎么做出来的呢,要是我对它的机制非常清楚,要是我能够自己也弄出这么一些玩意多好啊。
所以,下面的事情,那就是盯着这个工程,看代码。真的是望眼欲穿啊我。
怎么看呢,只能凭自己这么菜的理解能力去慢慢看吧,没人指点的话,也只能用自己的方式去理解了。
首先,这是一个插件工程,那么肯定有一个Plugin类,这是肯定的,它代表这整个这个插件的对象,好,这个理解了,瞎理解,先不管了;
然后,这个gef不就是可视化编辑嘛,也就是三层模式,那么肯定就有模型,那么肯定就得建模,那么从哪开始看起呢,那么肯定就是从模型开始看起啰,毋庸置疑,显而易见,首当其冲,谁让他是模型呢,活该他倒霉。好了,看看工程,模型在哪里。
model包下,有三个类,Element类,Diagram类,Node类。真的好复杂啊。。。。。。。。别急,模型嘛,不就是类嘛,不就是对象嘛,平常挂在嘴巴边的老说的什么面向对象面向对象的,现在不正好理论结合实际的可以用一用啰,那么,打开这三个类一看,发现了吧,Diagram和Node两个类都是从Element继承而来,好啰,这下子工作量缩小了三分之二,就只用关注Element类啰。瞧瞧Element类,xixi,还可以用面向对象的手法,画出类图,慢慢分析:
UML 基础: 类图
http://www.ibm.com/developerworks/cn/rational/rationaledge/content/feb05/bell/
Element对象
定义的抽象类,
上头是 Cloneable和Serializable,
有一个transient protected PropertyChangeSupport类型的对象listeners
..............
真的难看。怎么办,决定了,盯他30分钟再说,瞪完就不管了。
好难理解啊:
transient的意义
transient
Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。
ai,反正跟串行化有关就行了,先不管了;
abstract 抽象类
表示类的方法由子类实现。
这个还好理解。
Element就到这吧.
画uml图
public +
protected #
private -
package ~
阅读(472) | 评论(0) | 转发(0) |