MageTower
信息平台架构
–
我的精灵
接上文。既然不敢面向上帝,那我能面向神仙么?算了吧,上帝不好惹,神仙也不是省油的灯。那就再降一级,我把目光转向精灵。记得小朋友的美丽童话中,经常会出现什么精灵、仙子之类的,她们可爱又善良,尽管法术有限,但比起我们这些愚钝之人来说,可谓灵性多了。而且与她们打交道,并非我的创举,我们现在许多软件产品(比如
Word
)中都有一些精灵助手之类的东东。看来还是比较安全的。退一步讲,万一有什么闪失,那罪名也不是我一个人担着。主意已定,动将起来。
精灵,
Fairy
。









仙人必有名号。没有名号,不要说系统处理不了,而且也不符合常理,
getId
就是向仙人讨教名号。说明:尽管精灵不及神仙,但为了尊重起见,我应该往大一辈称呼,以便讨得喜欢,所以很多情况下称其为神仙、仙人。
你我凡夫俗子,生于天地之间,全赖神灵护佑,难免诚惶诚恐。于是乎见庙就进香,遇佛就磕头,然而常常事与愿违。为什么?拜错神了。欲知你要拜的是哪一路的神仙,
getType
帮你忙。这一点要尤为小心,否则仙人怪罪下来,那可担待不起。
前面说道,精灵非神仙,更非上帝,神仙尚有力所不逮,何况精灵乎?加上经常搞不清路数,岂不是愁煞小民了?《西游记》开篇第一回,美猴王就遇此困惑,欲求长生不老,访佛仙神圣,却不知何往。这时,忽跳出一个通背猿猴,道:“他只在阎浮世界之中,古洞仙山之内。”
猴王闻之,满心欢喜。可见,精灵虽有所不能,但却可能引你到仙人之处。这里的
find
就期冀达此功效。参数
fid
一般是指仙人的名号,但你也可设计成允许用路数等问题来求问仙人,全望所求精灵的灵巧程度而已。当然,这也不是万能的,如果还不行,那你只好另求高明了。
接下来就要谈精灵的主要工作:显灵,或显圣,
showPower
。求仙拜佛,必是有所求才是,所以要给一个参数
asking
,告诉仙人你求什么。比如,你跪在佛像前,捣头如鸡拾米状,口中念念有词:“菩萨菩萨,发发慈悲,帮我把埋在墙角的三百两银子找回来吧。”这里,你的所求是:找回银子。但仅此不够,你还向菩萨提供的环境参数(
envi
)中加了两个说明:
1
、在墙角,
2
、三百两。为了便于菩萨的工作,你还可以在环境参数中多增加一些情况说明,比如,
3
、昨天晚上,你还在那里立了一块牌子,上书:此地无银。
4
、而今天早上,你发现牌子的背面多了四个字:王二没偷。按理,真正的仙人本不需要你提供什么环境参数,你只要诚心祷告即可,神仙自然洞察一切。但我的精灵实在道行太浅,你必须将必要的资料提供给她。何也?因为我用的是
Java
,其
Object
太笨,搞得精灵也没辙。将来真要出了面向上帝的语言,想来这些就会不在话下。上帝保佑,等着吧。
如果一切顺利,你也没拜错神,神的法力也足够,
showPower
自然会达成你的愿望。那么,法力何来?法力是由外界赋予的:
addPower
。也就是说,就纯粹的精灵而言,她本身是没有任何法力的,但她具有接受任何赋予的法力的能力。什么叫法力无边,我看这就叫法力无边。所谓受人以鱼,莫如授人以渔。又所谓无为而无所不为。当你觉得一个实例化的
Fairy
法力不够时,你无需改动
Fairy
本身的任何代码,就可以任意增加她的法力。按理,法力本应是上帝赋予的,但我这不是面向上帝的语言,所以你必须指明是谁赋予的:
cls
,法力的名字叫什么:
method
。这样,当精灵要行使其法力时,就会找到
cls
,从那里获得
method
。同时,在赋予法力的时候,要告诉精灵,何种所求(
asking
)才用此法力。这样,
asking
、
cls
、
method
就构成了这个精灵的法力表。你只要不限制法力表的容量,那就成就了法力无边的可能。而且法力表是动态的,随需而动啊。
最后,我这里略去了,还可以允许动态删除法力。
当然,在实际解决时,还有一些技巧可用,比如智能筛选、冲突处理等等不题。
我的系统中,将是形形色色、各式各样的精灵,像天使一般,自由翱翔、施法斗强的缤纷天地。希望她们带我进入那梦寐以求的理想王国。
有诗为证:
.
灵仙赋身功为高,魑魅无降解分晓,
大雪将压笑柏松,怎奈四时轮回道。
.
.
蹩脚,我汗。