中国开发网: 论坛: 程序员情感CBD: 贴子 249183
sealw: assertTrue(某男.变性手术() instanceof 女人)
青蛙 a = new 青蛙();
assertTrue(a.is蝌蚪());
assertFalse(a.is青蛙());
assertTrue(a instanceof 青蛙);

a.growUp();
assertFalse(a.is蝌蚪());
assertTrue(a.is青蛙());
assertTrue(a instanceof 青蛙);

可以将青蛙和蝌蚪定义为一个类的两个不同状态,不同状态的实例有显著不同的特征和行为。例如冰、水、水蒸气。参见State模式。

也可以将青蛙和蝌蚪定义为蛙的两个子类
蝌蚪 a = new 蝌蚪();
青蛙 b = a.growUp();
assertTrue(a instanceof 蛙);
assertTrue(b instanceof 蛙);
assertTrue(a.hasSameDNA(b));

还可以使用模板
typedef 蛙(幼虫) 蝌蚪;
typedef 蛙(成虫) 青蛙;

还可以
青蛙.die();

还可以
青蛙.transform(王子)
青蛙.transform(化石)

程序是一个虚拟世界,程序员是这个世界的上帝,动态类型(无类型)语言也是存在的。你可以让一个东西一会是青蛙,一会儿是王子,一会儿是化石。克隆这种真实世界比较难做到的事,程序世界里也是轻而易举的。也许你建立的世界看起来不太像真实世界,但这个世界有一种无名特质,很吸引人。或者是童话世界,或者是毕加索笔下的世界,或者是传奇世界,或者是Matrix。

上帝创造了我们,我们创造了程序。
Impossible is nothing.

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录