嵌入式開發(fā)雖然平時C語言用的比較多,但面向?qū)ο蟮乃季S應(yīng)該是每一位嵌入式軟件工程師必備的知識。
之前給大家分享過用C語言實現(xiàn)面向?qū)ο蟮膬?nèi)容,也分享過單片機用C++點燈的文章。
今天就再給大家拓展一下面向?qū)ο箢愔g的幾種關(guān)系。
1、類之間的關(guān)系
類在面向?qū)ο蟪绦蛟O(shè)計中是一個非常重要的概念,是一系列具有相同屬性和方法的對象抽象,那么弄明白類之間的主要關(guān)系對于面向?qū)ο蟪绦蛟O(shè)計建模起到了指導(dǎo)意義。
類之間關(guān)系主要分為如下幾種:
下面對類的這幾種關(guān)系進行詳細描述:
2、實現(xiàn)關(guān)系
類之間的實現(xiàn)關(guān)系主要是用于描述接口與類或者組件之間的關(guān)系,該接口是操作和方法的集合,提供給類使用。
這樣不同的類通過統(tǒng)一的接口以自己的方式來進行實現(xiàn)。
在C++語言中體現(xiàn)實現(xiàn)關(guān)系主要通過virtual虛函數(shù)來表達,而接口是通過純虛函數(shù)來表達。
3、泛化關(guān)系
泛化其實也叫做繼承關(guān)系,在學(xué)習(xí)C++編程語言中應(yīng)該是對其非常了解了。
比如子類繼承父類的相關(guān)屬性和方法。
4、依賴關(guān)系
依賴關(guān)系更多的一種使用關(guān)系,比如某人要去上班,那么他需要依賴于一種交通工具,可以是公交車、可以是同事的車等等。
在程序中通常一個類是另外一個類的參數(shù)或者返回值等等。
5、關(guān)聯(lián)關(guān)系
關(guān)聯(lián)算是復(fù)雜一點的關(guān)系形式,主要有一般關(guān)聯(lián)、聚合和組合。關(guān)聯(lián)關(guān)系的兩個類更多的是處于一種平等的位置,而非從屬關(guān)系。
通常在C++中一個類作為另外一個類的成員變量,這種叫單向關(guān)聯(lián),如果我中有你,你中有我,則是一種雙向關(guān)聯(lián)等等。
聚合關(guān)系是一種整體與部分的關(guān)系,但是整體與部分可以分開獨立存在,部分可以添加到整體,也可從整體中移出。
而組合關(guān)系也是一種整體與部分的關(guān)系,但其關(guān)聯(lián)性更強,兩者不可分開,且具有統(tǒng)一的生命周期,同生死共存亡。
舉個例子,電腦的可以使用不同品牌的內(nèi)存條,那么其可以看成聚合的關(guān)系,而一個人與嘴巴的關(guān)系,這種關(guān)聯(lián)性更強的屬于組合關(guān)系,屬于生命一體。
審核編輯:劉清
-
Virtual
+關(guān)注
關(guān)注
0文章
23瀏覽量
12433 -
編程語言
+關(guān)注
關(guān)注
10文章
1952瀏覽量
35835 -
C++語言
+關(guān)注
關(guān)注
0文章
147瀏覽量
7184
原文標題:面向?qū)ο箢愔g主要的幾種關(guān)系
文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
基于C/C++面向對象的方式封裝socket通信類流程簡析
利用LabVIEW工程庫實現(xiàn)面向對象編程
3分鐘看懂Python面向對象
對象關(guān)系的阻抗失配的含義了解
LabVIEW面向對象的ActorFramework(1)
談?wù)?b class='flag-5'>面向對象編程
面向對象程序的主要結(jié)構(gòu)特點是什么
解讀rtt的c的面向對象的對象創(chuàng)建及其啟動初始化流程
對象/關(guān)系映射中的完整性及關(guān)系約束檢查
基于代數(shù)規(guī)格的面向對象蛻變關(guān)系構(gòu)造方法
UML類圖之間的關(guān)系

評論