2007年4月21日星期六

大勇和小花的欧洲游记

大勇和小花的欧洲游记 www.dayong.name

在网上逛的时候无意中遇到了这个网站,美涣美仑的Flash,悠扬美妙的音乐,再加上熟悉的画面引起了我极大的兴趣。

我很久没有这么仔细,这么悠闲的在网上阅读文章了。进入他们2005年的游记慢慢品读,发现细腻的文字出自小花之手,照片则出自大勇之手,两者配合的天衣无缝。耳边飘着法文音乐,思绪已经跟着他们的步伐一路畅游欧洲了,真是奇妙的感觉。

手机小知识

觉得有用,因此转贴过来:

  1. 大家都知道用手机拨长途,前面加拨17951可以获得优惠价。但是,我们都不知道,必须手动拨号才能享受,重拨键系统不识别!
  2. 要想查询手机中的信息预定,请拨“0000”到186201,系统就会回复一个短信,列明所有的定制信息。如果想退定,就拨“00000”到186201即可。
  3. 锂电池的手机请不要等电量彻底耗尽再充电,因为锂电池和原来的镍电池不同,没有记忆功能,而且完全耗尽反而会影响电池中成份的反应。
  4. 打电话时,如果信号很弱,只有一格,请尽量停止通话,因为这时候手机的辐射最强。

2007年4月9日星期一

Father and Daughter

小L正在打游戏,老L笑眯眯的走到小L旁边,“最近UML学的怎么样了?”
“嗯,还可以”小L应付了一声。
老L仍旧笑眯眯的说,“那就出道题目考考你吧”
于是老L随手在纸上画了一个简单的类图

“你看看这个关系对不对呢?”
小L抬头一看,哑然失笑,“那还用问,当然是正确的!”
“错!”老L眼神开始严厉起来。
“为什么?”小L关了游戏机,不服气的问道,“父亲和女儿不就是继承关系吗?”
老L没有回答小L的问题,指着图说道:“泛化关系就是is-a关系,那女儿是父亲吗?”
小L心里咯噔一下,他已经知道自己错在哪里了。
老L继续说下去,“这女儿啊,是永远不可能成为父亲的,就算以后结婚了,也是成为母亲。除了一种情况,她是个同性恋,她和另外一个女人结婚了,然后她让她孩子叫她‘爸爸’!”
“好吧,我承认我错了,但是他们到底是什么关系呢?”小L反问道。
“你再来看看这个图”,老L又拿出一张白纸,画了另一个图。“那这个图对不对呢?”老L又是笑眯眯的问。
“嗯……这个是拥有关系,父亲拥有女儿,应该是对的吧……”小L觉的有点头大了,自己在看书的时候觉得都看懂了,怎么遇到个这么简单的问题就开始犯迷糊了呢?
“我要首先纠正你的用语,用语规范才能学好东西。这个是聚合,表达的是has-a的关系……”,老L看了看小L,继续说道,“这个关系也是错的。”
“为什么?父亲拥有女儿,说起来虽然有点别扭,但应该还是对的吧。”
“是错的,因为聚合表达的是整体-部分关系,女儿是父亲的一部分吗?如果父亲被车撞死了,女儿要怎么办?女儿也得自杀。因为聚合有个同生共死的概念在里面。而且聚合常常这样画……”说着老L在画上加上了重数(multiplicity)小L一看也哑然失笑,的确这是错误的。
“事实上,聚合是不推荐使用得东西,在你初学得时候,尽量不要去用它。”
“好吧,再看看这个”老L又画了一个图。

“这是组合”小L有点想起来了,“我总是把实心的菱形和空心的菱形搞混,不过现在我记住了,这里是一个father拥有1到多个女儿,这个肯定是对的了。”
“让你失望了,这个还是错的!”老L说道,“虽然组合的逆重数常常是1,但是他归根结底和聚合是差不多的,都是表明has-a这个概念的。比如代码可以这样写……”

class Father {
Daughter d = new Daughter();
……


“从这个关系里面可以看到,女儿是做为父亲的一个属性,也就是特性存在的。而且最重要的,父亲知道女儿,但女儿知道父亲吗?不知道!所以这个是错的”

“你是对的”小L垂头丧气的说道,“那,到底他们是什么关系?”

“呵呵”,老L笑着说到,“看看这个图”

“这不就是一般的关联吗?”小L疑惑的问道。
“对,父女的关系就是一般的关联,另外还有两个role: be father of 和 be daughter of。他们的关系只能用关联来表示”。
“原来是这样,看来我还要自己得仔细得去思考UML的细节问题啊……”小L拿起几张图一一对照过去,若有所悟得说道。