“Analysis Patterns”的第一章有这么一句:
Consider someone who wants to write software to simulate a game of snooker.
2004(机械工业出版社)中译本的译文为:
game翻译成“游戏”,这个不对。(电脑)游戏本身已经是模拟了,再写一个软件来模拟游戏?此处的game应该是“比赛”的意思。
snooker翻译为斯诺克台球,这是正确的。
2020(人民邮电出版社)中译本的译文为:
game翻译成“比赛”,这个正确,但snooker翻译成“台球”,这个不对。另外,someone没有译出来。
**********
“台球(billiards)”跟“斯诺克(snooker)”是有区别的。用球杆击打台上的主球撞击其他球的,都叫台球运动。斯诺克只是台球运动的一种。
我画了一个类图来表示台球运动的分类:
因为空间有限,下面两层的子类最多画了两个,但实际上不止这么多。
绿色标出的,是我们中国人玩得最多的中式8球,属于花式台球的一种。斯诺克属于英式台球的一种。
Billiards还有一个狭义的意思,专门指的英式台球中的比利台球。
WPBSA的全称是World Professional Billiards & Snooker Association(世界职业比利和斯诺克协会),此处的Billiards就是狭义的英式比利。
**********
可能有的同学会想,斯诺克是台球的一种,把它拔高成台球也很合理吧?领域驱动设计还是敏捷不是【提出】了一个什么替换原则吗?
当然是有问题的。泛化是说超类定义的特征适用于子类,而不是反过来。
我们来看这句话后面的整段文字:
Consider someone who wants to write software to simulate a game of snooker. This problem could be evaluated in terms of use-cases that describe the surface features: "The player hits the white ball so it travels at a certain speed; it hits the red ball at a certain angle, and the red ball travels a certain distance and direction."
里面提到,玩家击白球(white ball),然后,然后白球撞击红球(red ball)。
这对于斯诺克是说得通的,如下图:
如果不是斯诺克,而是中式8球,如下图:
红球是哪一个呢?3号球?
标签:ball,17,漫谈,game,斯诺克,台球,snooker,someone From: https://blog.csdn.net/rolt/article/details/140991705