《分析模式》漫談08-單繼承不是“唯一繼承”

DDD領域驅動設計批評文集

做強化自測題獲得“軟件方法建模師”稱號

《軟件方法》各章合集


《分析模式》第2章這一段:

圖片

劃線處的single inheritance,2004中譯本的翻譯:

圖片

翻譯為“單繼承”,是正確的。

2020中譯本的翻譯:

圖片

翻譯為“唯一的繼承”,這個就不對了。

這里的single inheritance應該就是面向對象編程語言里面的single inheritance。

找了幾本不同編程語言的書,看看其中是怎么翻譯的:?

圖片

圖片

圖片

single inheritance主要出現在一些編程語言中。UML規范用的詞是generalization,不是用inheritance,所以,純UML建模書里面不一定會出現single inheritance的用詞。

百度,我們搜‘“single inheritance 繼承”,出來的是“單繼承”:

圖片

我們來看另外一個問題:

如果譯者覺得就是不喜歡把single inheritance譯作“單繼承”,創新一下,譯作“唯一繼承”,可不可以呢?

我們來看看下面這個圖:

圖片

我們還是順著《分析模式》原文,以醫生作為例子。醫生按科室分子類,有兒科醫生、內科醫生、外科醫生,按級別分子類,有住院醫生、主治醫生、主任醫生。

這是不同的泛化集(generalization set),表現為兩棵泛化樹。

圖上依然是“單繼承”,一個類最多有一個超類,但不是“唯一的繼承結構”。

**********

我們看一下自反關聯的不同多重性所得到的對象圖的不同結構,就可以知道原文的意思。

多對多自反關聯,所得到的對象圖是網狀結構;

1對多自反關聯,所得到的對象圖是樹狀結構;

——只允許單繼承的泛化結構,有泛化關系的類就組成了一棵樹。當子類被取消,成為“**類型”的一個實例時,之前由類組成的樹,就變成了“**類型”的實例組成的樹,即“**類型”的1對多自反關聯的對象圖。

0..1對0..1自反關聯,所得到的對象圖是隊列結構;

嚴格的1對1自反關聯,所得到的對象圖是環狀結構;

——最小的環就是兩個對象的環,例如“人”之間的“夫妻”自反關聯。

圖片

圖片

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/37327.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/37327.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/37327.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java NIO(一) 概述

NIO主要用于以少量線程來管理多個網絡連接,處理其上的讀寫等事件。在大量連接情況下,不管是效率還是空間占用都要優于傳統的BIO。 Java NIO 由以下幾個核心部分組成: Channel Buffer Selector Selector 如果你的應用打開了多個連接&#x…

分頁插件 count有數據,代碼不往下執行

如下:如果打印了sql那么當row>0時會有圖2下面sql詳情的輸出 問題出在了分頁參數上,pageNum為1,并且pageSize>2才能打印出圖二的結果,圖一為pageNum值是0,注意,查詢第一頁,分頁應該傳入的是1而不是0

大數據批處理系統和業務系統是兩種不同類型的系統,它們在目的、設計、功能和使用場景上有所區別

大數據批處理系統和業務系統是兩種不同類型的系統,它們在目的、設計、功能和使用場景上有所區別。以下是大數據批處理系統和業務系統之間的一些主要差異: 1. **目的**: - **大數據批處理系統**:主要用于處理和分析大量數據&am…

MySQL高級1.0

目錄 📌MySQL存儲過程和函數 ??存儲過程和函數介紹 ??存儲過程的創建和調用 ??存儲過程的查看和刪除 ??存儲過程語法-變量 ??存儲過程語法-if語句 ??存儲過程語法-參數傳遞 ??存儲過程語法-while循環 ??存儲過程語法-存儲函數 &#x1f4…

Linux高并發服務器開發(六)線程

文章目錄 1. 前言2 線程相關操作3 線程的創建4 進程數據段共享和回收5 線程分離6 線程退出和取消7 線程屬性(了解)8 資源競爭9 互斥鎖9.1 同步與互斥9.2 互斥鎖 10 死鎖11 讀寫鎖12 條件變量13 生產者消費者模型14 信號量15 哲學家就餐 1. 前言 進程是C…

【FFmpeg】avio_open2函數

【FFmpeg】avio_open2函數 1.avio_open21.1 創建URLContext(ffurl_open_whitelist)1.1.1 創建URLContext(ffurl_alloc)1.1.1.1 查找合適的protocol(url_find_protocol)1.1.1.2 為查找到的URLProtocol創建UR…

影響Cache命中率的因素有哪些?

緩存命中率(Cache Hit Rate)是指處理器訪問緩存時,所需數據已經在緩存中找到的次數與總訪問次數的比例。提高緩存命中率可以顯著提升系統性能,因為緩存訪問速度遠快于主存訪問速度。影響緩存命中率的關鍵因素包括: 1.…

C語言異常處理就機制setjmp()和longjmp()

C語言setjmp()和longjmp()實現異常處理機制。 setjmp() 用于保存當前的程序執行狀態。 longjmp() 用于在后面的某個時刻返回到setjmp()點的狀態。 類似goto。但goto是本地的,只能在函數內部跳轉。 setjmp()和longjmp()是非局部跳轉語句,可在調用棧上&a…

通信系統網絡架構_3.移動通信網絡架構

移動通信網為移動互聯網提供了強有力的支持,尤其是5G網絡為個人用戶、垂直行業等提供了多樣化的服務。以下從業務應用角度給出面向5G網絡的組網方式。 1.5GS與DN互連 5GS(5G System)在為移動終端用戶(User Equipment,…

CSRF的其他防范措施?

一般情況下,我們可以通過各種防護策略來防御CSRF,對于QA、SRE、安全負責人等,我們可以做哪些事情來提升安全性呢? 一、CSRF測試 CSRFTester是一款CSRF漏洞的測試工具,CSRFTester工具的測試原理大概是這樣的&#xff…

BLACKBOX.AI:解鎖開發新紀元,加速編程學習的AI神器!

文章目錄 💯BLACKBOX.AI 官網🍁1 BLACKBOX.AI 工具使用教程🍁2 BLACKBOX.AI工具使用界面介紹🍁3 Chat(聊天)功能🍁4 Explore (探索)功能💎4.1 Terminal(終端)功能💎4.2 Discover(發現)功能&…

STM32 IWDG(獨立看門狗)

1 IWDG簡介 STM32有兩個看門狗:一個是獨立看門狗(IWDG),另外一個是窗口看門狗。獨立看門狗也稱寵物狗,窗口看門狗也稱警犬。本文主要分析獨立看門狗的功能和它的應用。 獨立看門狗用通俗一點的話來解釋就是一個12位的…

關于轉BigDecimal對象時,精度問題

//浮點型數值Double d 0.0003d;//轉BigDecimal對象BigDecimal a new BigDecimal(d);System.out.println(String.format("浮點類型數字:%.4f創建BigDecimal對象并且保留多位小數并且保留多位小數時,精度會變多,結果為%s",d,a.setScale(8, BigDecimal.ROUND_DOWN)));…

format()方法——格式化字符串

自學python如何成為大佬(目錄):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 語法介紹 format()可以對數據進行格式化處理操作,語法如下: format(value, format_spec) format_spec為格式化解釋。當參數…

【計算機畢業設計】092基于微信小程序二手閑置交易市場

🙊作者簡介:擁有多年開發工作經驗,分享技術代碼幫助學生學習,獨立完成自己的項目或者畢業設計。 代碼可以私聊博主獲取。🌹贈送計算機畢業設計600個選題excel文件,幫助大學選題。贈送開題報告模板&#xff…

PostgreSQL的系統視圖pg_stat_archiver

PostgreSQL的系統視圖pg_stat_archiver 在 PostgreSQL 數據庫中,pg_stat_archiver 視圖提供了關于歸檔進程(archiver process)的統計信息。歸檔進程負責將 WAL(Write-Ahead Logging)日志文件復制到歸檔存儲&#xff0…

探索區塊鏈:顛覆性技術的崛起

目錄 一、引言 二、區塊鏈技術概述 三、區塊鏈應用場景 四、區塊鏈面臨的挑戰 五、區塊鏈的未來展望 六、結語 一、引言 在數字化浪潮的推動下,區塊鏈技術以其獨特的去中心化、透明性和不可篡改性等特性,正在逐步改變我們的生活。從金融領域到供應…

基于Java的茶文化交流系統【附源碼+LW】

摘 要 計算機網絡發展到現在已經好幾十年了,在理論上面已經有了很豐富的基礎,并且在現實生活中也到處都在使用,可以說,經過幾十年的發展,互聯網技術已經把地域信息的隔閡給消除了,讓整個世界都可以即時通話…

MySQL數據庫存儲引擎

MySQL數據庫存儲引擎 存儲引擎概念 存儲引擎也稱為表類型 通過不同的技術比如說,存儲機制,索引技巧,鎖定水平等等,來提供不同的功能。 查看MySQL支持的存儲引擎 show engines\G; 常用引擎比較 對事務有需求 innodb …

TiDB-從0到1-數據導出導入

TiDB從0到1系列 TiDB-從0到1-體系結構TiDB-從0到1-分布式存儲TiDB-從0到1-分布式事務TiDB-從0到1-MVCCTiDB-從0到1-部署篇TiDB-從0到1-配置篇TiDB-從0到1-集群擴縮容 一、數據導出 TiDB中通過Dumpling來實現數據導出,與MySQL中的mysqldump類似,其屬于…