由于今天没有任务缠身,所以可以开始研究服务器架构了,一边研究一边画UML图。比如我想画地图转化模块的UML图,看看涉及到哪些模块,那么我就会在最终调用的函数那里设个断点,接着利用VS2010的栈跟踪调试来看看都经过哪些类了。这一步还是没问题的,问题是,UML图怎么画呢?我脑海里只记得5个关系:关联、聚合、组合、依赖和继承,继承好说,剩下4个是怎么回事呢?
经过一番调查之后,终于理清了。
关联是包含了聚合、组合以及一般关联。
一般关联就是两个平行的类,互相调用其共有接口。UML中用实线箭头,A调用B的接口则是A指向B,双方都互相用到,则用双向箭头或者不加箭头,直接一条实线。
聚合是比一般关联的关系强些,含有“has-a”的意思。比如A聚合了B,那么A里面应该就有B的指针或者引用,B可以脱离A独立存在,A不管理B的生命周期,可以通过构造函数传参或者用setter函数把B的实例注入A中。UML中用空心菱形加实线箭头,A聚合B则是从A指向B。
组合比聚合的关系更强,也是含有“has-a”的意思。比如A组合了B,那么A里面的成员变量就有个B,如果是B的指针,那么也会在A的其他成员函数里面将B new出来,B的生命周期归A管理。UML中用实心菱形加实线箭头,A组合B则是从A指向B。
依赖含有“use-a”的意思。比如A依赖B,可以理解为A某个地方需要用到B。在程序里面可以这样表示:A调用的某个接口需要用到B作为形参传进去,A需要用到B的静态成员函数,A的某个成员函数将B作为局部变量出现。UML中用虚线+箭头,A依赖B则从A指向B。
以上就是一些小总结。
至于在mac上如何画UML图?这个就折腾了我半天了!最终我选择的是astah professional6.9这个软件,如何下载和破解参照这个网址:http://bbs.feng.com/forum.php?mod=viewthread&tid=8907096
上面那个破解方法中提到,要把破解补丁中的astah-pro.jar放在astah professional->astah professional->contents->java中,可是我怎么样都找不到astah professional中的astah professional文件夹,只有那个可执行文件!原来,那个可执行文件也可以打开的!没鼠标的情况下,按住control+轻碰触摸板(相当于右键)->显示包内容,里面就是了!我都醉了!被windows涂毒多年!
好吧,不管怎么样,明天开始好好画图,好好整理框架以及训练自己的文档能力!