首页 > 其他分享 >“斯诺克”不等于“台球”-《分析模式》漫谈17

“斯诺克”不等于“台球”-《分析模式》漫谈17

时间:2024-08-09 13:59:29浏览次数:18  
标签:ball 17 漫谈 game 斯诺克 台球 snooker someone

DDD领域驱动设计批评文集

做强化自测题获得“软件方法建模师”称号

《软件方法》各章合集

“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

相关文章

  • Odoo17.0基于企业微信的考勤应用
    对于使用企业微信进行办公的企业而言,使用企业微信打卡功能进行考勤非常常见,而如果能够将企业微信的打卡记录同步到odoo将极大的方便公司进行考勤统计和薪酬核算,降低人事工作的琐碎度,提供企业内部运营效率。本文就将展示如何借助企业微信高级版模块实现企业微信考勤应用的同步与应......
  • springboot校园失物招领系统-计算机毕业设计源码17082
    目 录摘要1绪论1.1研究背景1.2 研究意义1.3论文结构与章节安排2 相关技术介绍2.1B/S结构2.2SpringBoot框架2.3MySQL数据库3系统分析3.1可行性分析3.2系统流程分析3.2.1数据新增流程3.2.2 数据删除流程3.3 系统功能分析3.3.1......
  • Java poi3.17 如何区分获取日期类型的单元格的值
     1、网上看了好多方案,似乎都没有效果。2、解决方法:如果是日期类型的单元格,index是等于3的。但是我偶尔到的情况,不是等于日期类型,也会等于3,这时获取Datedate=cell.getDateCellValue();值会报错,解决方法,就是用try/catch包起来,继续使用dataForMatter.formatCellValue(cel......
  • Spring Data Rest 远程命令执⾏命令(CVE-2017-8046)
    简介:Spring是JavaEE编程领域的⼀个轻量级开源框架,该框架由⼀个叫RodJohnson的程序员在2002年最早提出并随后创建,是为了解决企业级编程开发中的复杂性,业务逻辑层和其他各层的松耦合问题,因此它将⾯向接⼝的编程思想贯穿整个系统应⽤,实现敏捷开发的应⽤型框架。框架的主要优......
  • 【MATLAB源码-第174期】基于matlab的OFDM电力线系统仿真:梳状导频+LS/MMSE/SVD信道估计
    操作环境:MATLAB2022a1、算法描述OFDM电力线通信系统(PLC)是一种通过电力线传输数据的通信技术,利用了OFDM(OrthogonalFrequencyDivisionMultiplexing,正交频分复用)技术的优势来提高数据传输的速率和质量。电力线作为一种传输介质,其特点包括信道条件的不稳定性、高衰减率以及......
  • 【MATLAB源码-第173期】基于matlab的RS编码的2FSK通信系统误码率仿真,通过AWGN信道输出
    操作环境:MATLAB2022a1、算法描述通信系统的基本框架在现代通信系统中,数据的传输通常涉及四个基本步骤:源编码、信道编码、调制和传输。源编码主要负责压缩数据,减少传输的数据量。信道编码则通过添加冗余信息来提高传输数据的可靠性。调制是将数字信号转换为适合在物理信道......
  • 洛谷P1786 帮贡排序
    6.帮贡排序题目背景在absi2011的帮派里,死号偏多。现在absi2011和帮主等人联合决定,要清除一些死号,加进一些新号,同时还要鼓励帮贡多的人,对帮派进行一番休整。题目描述目前帮派内共最多有一位帮主,两位副帮主,两位护法,四位长老,七位堂主,二十五名精英,帮众若干。现在absi2011要......
  • Navicat Premium 17 解锁版下载及安装教程 (数据库管理工具)
    前言NavicatPremium是一套可创建多个连接的数据库开发工具,让你从单一应用程序中同时连接MySQL、MariaDB、MongoDB、SQLServer、Oracle、PostgreSQL和SQLite。它与OceanBase数据库及AmazonRDS、AmazonAurora、AmazonRedshift、MicrosoftAzure、OracleCloud、......
  • 微信电脑版v3.9.11.17 防撤回版 多开版
    版本特色:1、看到对方撤回的消息2、多账号可正常登录修改原理,如下图:使用说明:解压后,双击start_Wechat.exe来运行软件下载地址:Wechat防撤回版v3.9解压密码:helloh下载时可能会有广告,忽略,等下载结束即可部分杀软会因该版本软件未购买签名证书(如下图)而阻止运行,可通过暂时......
  • 第一课jdk17,java技术路线
    用对话形式,阐述中学生都能听懂的java入门篇,不涉及具体技术细节。场景1:-面试官A-求职者BA:什么是java?B:java是一门编程语言,主要用于后台开发、web开发。//说是什么和具体实际应用。A:什么是后台?B:后台的质量决定了服务器处理高并发、网络安全问题等性能。后台类似餐厅的后厨,......