0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

類在面向?qū)ο蟪绦蛟O(shè)計(jì)中的幾種關(guān)系

strongerHuang ? 來源:嵌入式情報(bào)局 ? 作者:情報(bào)小哥 ? 2022-09-16 09:07 ? 次閱讀

1、類之間的關(guān)系

類在面向?qū)ο蟪绦蛟O(shè)計(jì)中是一個(gè)非常重要的概念,是一系列具有相同屬性和方法的對(duì)象抽象,那么弄明白類之間的主要關(guān)系對(duì)于面向?qū)ο蟪绦蛟O(shè)計(jì)建模起到了指導(dǎo)意義。

類之間關(guān)系主要分為如下幾種:

5bb0500a-3557-11ed-ba43-dac502259ad0.png

下面對(duì)類的這幾種關(guān)系進(jìn)行詳細(xì)描述:

2、實(shí)現(xiàn)關(guān)系

類之間的實(shí)現(xiàn)關(guān)系主要是用于描述接口與類或者組件之間的關(guān)系,該接口是操作和方法的集合,提供給類使用。

這樣不同的類通過統(tǒng)一的接口以自己的方式來進(jìn)行實(shí)現(xiàn)。

5bee5ad0-3557-11ed-ba43-dac502259ad0.png

C++語言中體現(xiàn)實(shí)現(xiàn)關(guān)系主要通過virtual虛函數(shù)來表達(dá),而接口是通過純虛函數(shù)來表達(dá)。

3、泛化關(guān)系

泛化其實(shí)也叫做繼承關(guān)系,在學(xué)習(xí)C++編程語言中應(yīng)該是對(duì)其非常了解了。

5c33479e-3557-11ed-ba43-dac502259ad0.png

比如子類繼承父類的相關(guān)屬性和方法。

4、依賴關(guān)系

依賴關(guān)系更多的一種使用關(guān)系,比如某人要去上班,那么他需要依賴于一種交通工具,可以是公交車、可以是同事的車等等。

在程序中通常一個(gè)類是另外一個(gè)類的參數(shù)或者返回值等等。

5c8283ae-3557-11ed-ba43-dac502259ad0.png

5、關(guān)聯(lián)關(guān)系

關(guān)聯(lián)算是復(fù)雜一點(diǎn)的關(guān)系形式,主要有一般關(guān)聯(lián)、聚合和組合。關(guān)聯(lián)關(guān)系的兩個(gè)類更多的是處于一種平等的位置,而非從屬關(guān)系。

通常在C++中一個(gè)類作為另外一個(gè)類的成員變量,這種叫單向關(guān)聯(lián),如果我中有你,你中有我,則是一種雙向關(guān)聯(lián)等等。

5cb91fa4-3557-11ed-ba43-dac502259ad0.png

聚合關(guān)系是一種整體與部分的關(guān)系,但是整體與部分可以分開獨(dú)立存在,部分可以添加到整體,也可從整體中移出。

5cda2de8-3557-11ed-ba43-dac502259ad0.png

而組合關(guān)系也是一種整體與部分的關(guān)系,但其關(guān)聯(lián)性更強(qiáng),兩者不可分開,且具有統(tǒng)一的生命周期,同生死共存亡。

5d009dde-3557-11ed-ba43-dac502259ad0.png

舉個(gè)例子,電腦的可以使用不同品牌的內(nèi)存條,那么其可以看成聚合的關(guān)系,而一個(gè)人與嘴巴的關(guān)系,這種關(guān)聯(lián)性更強(qiáng)的屬于組合關(guān)系,屬于生命一體。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1945

    瀏覽量

    34757
  • C++語言
    +關(guān)注

    關(guān)注

    0

    文章

    147

    瀏覽量

    6993

原文標(biāo)題:面向?qū)ο箢愔g的幾種關(guān)系

文章出處:【微信號(hào):strongerHuang,微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    第5章 MATLAB程序設(shè)計(jì).ppt

    第5章 MATLAB程序設(shè)計(jì)
    發(fā)表于 10-24 16:40 ?0次下載

    《DNK210使用指南 -CanMV版 V1.0》第十九章 machine.PWM實(shí)驗(yàn)

    machine.PWM介紹19.2 硬件設(shè)計(jì)19.3 程序設(shè)計(jì)19.4 運(yùn)行驗(yàn)證 19.1 machine.PWM介紹machine.PWM是machine模塊內(nèi)提供的
    發(fā)表于 10-16 09:23

    《DNK210使用指南 -CanMV版 V1.0》第十八章 machine.Timer實(shí)驗(yàn)

    :18.1 machine.Timer介紹18.2 硬件設(shè)計(jì)18.3 程序設(shè)計(jì)18.4 運(yùn)行驗(yàn)證 18.1 machine.Timer介紹machine.Timer是machi
    發(fā)表于 10-16 09:21

    《DNK210使用指南 -CanMV版 V1.0》第十七章 machine.WDT實(shí)驗(yàn)

    學(xué)習(xí)到machine模塊WDT的使用。本章分為如下幾個(gè)小節(jié):17.1 machine.WDT介紹17.2 硬件設(shè)計(jì)17.3 程序設(shè)計(jì)17.4 運(yùn)行驗(yàn)證 17.1 machine
    發(fā)表于 10-15 14:32

    java子類可以繼承父的什么

    Java是一種面向對(duì)象的編程語言,它支持繼承的概念。繼承是面向對(duì)象編程的三大特性之一,它允許一個(gè)(稱為子類或派生
    的頭像 發(fā)表于 08-20 11:02 ?1237次閱讀

    無法PCB中選擇要復(fù)制、刪除或修改的特定對(duì)象

    如果PCB存在無法復(fù)制、刪除或修改的特定對(duì)象,則原因可能是多重過濾/鎖定程序阻止了無意選擇和修改對(duì)象的操作。
    的頭像 發(fā)表于 07-26 09:14 ?2948次閱讀
    無法<b class='flag-5'>在</b>PCB中選擇要復(fù)制、刪除或修改的特定<b class='flag-5'>對(duì)象</b>

    最簡(jiǎn)單的C程序設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《最簡(jiǎn)單的C程序設(shè)計(jì).pptx》資料免費(fèi)下載
    發(fā)表于 05-28 16:41 ?10次下載

    算法-程序設(shè)計(jì)的靈魂

    電子發(fā)燒友網(wǎng)站提供《算法-程序設(shè)計(jì)的靈魂.pptx》資料免費(fèi)下載
    發(fā)表于 05-28 16:39 ?3次下載

    程序設(shè)計(jì)基礎(chǔ)教程

    電子發(fā)燒友網(wǎng)站提供《程序設(shè)計(jì)基礎(chǔ)教程.pptx》資料免費(fèi)下載
    發(fā)表于 05-28 16:37 ?1次下載

    三種Mock測(cè)試方案的應(yīng)用與實(shí)踐總結(jié)

    面向對(duì)象程序設(shè)計(jì),模擬對(duì)象(英語:mock object,也譯作模仿
    的頭像 發(fā)表于 04-28 17:50 ?1508次閱讀
    三種Mock測(cè)試方案的應(yīng)用與實(shí)踐總結(jié)

    鴻蒙語言TypeScript學(xué)習(xí)第16天:【

    TypeScript 支持面向對(duì)象的所有特性,比如 、接口等。
    的頭像 發(fā)表于 04-15 09:29 ?1045次閱讀
    鴻蒙語言TypeScript學(xué)習(xí)第16天:【<b class='flag-5'>類</b>】

    C程序可用的存儲(chǔ)有哪些?

    register 存儲(chǔ)用于定義存儲(chǔ)寄存器而不是 RAM 的局部變量。這意味著變量的最大尺寸等于寄存器的大?。ㄍǔJ且粋€(gè)詞),且不能對(duì)它應(yīng)用一元的 '&' 運(yùn)
    發(fā)表于 03-15 12:32 ?383次閱讀

    java實(shí)現(xiàn)多線程的幾種方式

    Java實(shí)現(xiàn)多線程的幾種方式 多線程是指程序包含了兩個(gè)或以上的線程,每個(gè)線程都可以并行執(zhí)行不同的任務(wù)或操作。Java的多線程可以提高程序
    的頭像 發(fā)表于 03-14 16:55 ?714次閱讀

    vb運(yùn)行時(shí)錯(cuò)誤429不能創(chuàng)建對(duì)象

    系統(tǒng)已經(jīng)安裝了對(duì)象所依賴的組件或庫(kù)。如果缺少這些組件或庫(kù),就會(huì)導(dǎo)致不能創(chuàng)建對(duì)象的錯(cuò)誤。解決這個(gè)問題的方法是安裝所需的組件或庫(kù)。 對(duì)象
    的頭像 發(fā)表于 01-09 11:07 ?2348次閱讀

    基于TouchGFX的智能手表設(shè)計(jì) —硬件驅(qū)動(dòng)層程序設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于TouchGFX的智能手表設(shè)計(jì) —硬件驅(qū)動(dòng)層程序設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 01-05 11:20 ?1次下載