当前位置: 首页 > news >正文

“个体”不是“单一”-《分析模式》漫谈58

DDD领域驱动设计批评文集

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

《软件方法》各章合集

“Analysis Patterns”的第6章“存货和会计”原文:

To achieve this, instances of a posting rule require their own executable methods, a requirement that introduces the important modeling concept of an individual instance method (6.6).

2004(机械工业出版社)中译本的译文为:  

图片

标红字的individual instance method,翻译为“个体实例方法”,这是可以的。

2020(人民邮电出版社)中译本的译文为: 

图片

标红字的individual instance method,翻译为“单实例方法”。

乍一听,“个体”和“单”差不多,但这里面很可能混淆了individual和 single,意思刚好反掉了。

Individual的意思是“个体”,强调彼此不同。例如:

Prices are quoted on an individual basis.

这句说的是个性报价,一人一价。 

Single 的意思是“单一”,强调数量为1。例如:

Prices are quoted on a single‑price basis.

这句说的是单一报价,统一报价。

那么,书里面说的individual instance method属于哪一个情况,是“每个一个”还是“只有一个”?

**********

Individual instance method是Fowler自己起的模式名,除了在《分析模式》里面用,其他地方基本没有,少数有提到也是引用《分析模式》。

我们看书上用的例子,最朴素的类图如下: 

图片

有几十个州,就有几十个方法。可以看出,是每个州(实例)一个方法,通过条件语句来决定执行哪一个。

条件语句可以有泛化变体: 

图片

有几十个州,就有几十个子类,每个子类各自实现“计算”。这里是把一个州的实例(对象)拔高成一个类,这个类只有一个实例,因此类名称旁标了一个{1},也就是所谓的“单例(singleton)”。

也许2020中译本的“单”是受了这个的影响。

上图还可以变成: 

图片

相当于用了策略模式。

但要注意,individual instance method说的是每个实例一个方法,不能因为后两个图有“单例”,所以“用其中有单例类的类图实现的个体实例方法”简称“单实例方法”。individual instance method如果用最朴素那个图,里面就没有“单例”嘛。

我之前写过一篇文章也谈过2020中译本的类似问题:

《分析模式》漫谈08-单继承不是“唯一继承”>>

相关文章:

  • visio导出的图片过大导致latex格式转成pdf之后很不清楚
  • 千问2.5-VL-7B的推理、微调、部署_笔记2
  • 220V转直流非隔离传感器供电电源芯片WT5105
  • CS144 Lab2实战记录:TCP接收器的实现
  • 每日学习Java之一万个为什么(JUC)
  • 面试篇:Java并发与多线程
  • 通信安全员考试重难点考哪些?
  • 服务器编译环境配置及数据接收脚本编写(11)
  • C++类与继承
  • 三、Python编程基础03
  • URP-UGUI相关知识
  • 高光谱相机在工业检测中的应用:LED屏检、PCB板缺陷检测
  • CONDA:用于 Co-Salient 目标检测的压缩深度关联学习(总结)
  • openharmony5.0.0中C++公共基础类测试-线程相关(一)
  • 【速写】hook与fx
  • 国际化不生效
  • 聊聊SpringAI流式输出的底层实现?
  • 安全复健|windows常见取证工具
  • 从零开始搭建Django博客③--前端界面实现
  • 超声三维测试水箱与超声功率计:精准医疗与工业检测的核心技术支撑
  • 上海体育消费节将从5月持续至11月,推出运动装备商品促销活动
  • 稀土管制难倒特斯拉人形机器人“擎天柱”,马斯克:“正与中国协商”
  • 朱守科已任西藏自治区政府党组成员、自治区公安厅党委书记
  • 湘江半程马拉松赛女配速员“跑崩”,晕倒在终点?组委会回应
  • 中国与柬埔寨签署多领域合作文件
  • 三江购物:因自身商业需要,第二大股东阿里泽泰拟减持不超3%公司股份