這篇文章主要介紹EA畫UML圖之如何實(shí)現(xiàn)關(guān)聯(lián)類,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
示例:
有一個溫度控制系統(tǒng),通過傳感器測量溫度。傳感器的輸出是1v到5v,對應(yīng)的溫度為0到100攝氏度。
控制器每0.1秒獲取一次溫度值,然后根據(jù)實(shí)際溫度和期望的溫度的偏差來決定輸出值,計算的周期為1秒,輸出值的范圍為0%到100%。這個輸出值發(fā)送給一臺加熱器來控制溫度。
加熱器的控制端在輸入1v時的輸出功率為0KW,輸入5v是輸出功率為10KW。
這個系統(tǒng)應(yīng)該如何建模呢?先來第一步,識別類和關(guān)聯(lián)。
接下來將全部信息都反映到模型上。
不要被滿篇的屬性嚇倒,耐心地,慢慢地讀下去,你會理解的。
傳感器Sensor
傳感器Sensor的功能其實(shí)就是將現(xiàn)實(shí)世界中的0度(m_tempLow)到100度(m_tempHigh)的溫度經(jīng)過線性變換轉(zhuǎn)換成1v(m_outputLow)到5v(m_outputHigh)的電壓信號。
控制器Controller
控制器每0.1秒(m_sampleCycle)獲取一次Sensor的電壓輸出,將這個電壓值從范圍[m_sensorOutoutLow,m_sensorOutputHigh]線性變換到[m_tempLow,m_tempHight]之間,然后由控制器根據(jù)實(shí)際溫度的和期望溫度之間的偏差來決定輸出值,計算的周期為1秒(m_controlCycle),輸出值的范圍為0%(m_controllerOutoutLow)到100%(m_controllerOutoutHigh)。這個輸出值再經(jīng)過線性變換變成一個[m_heaterInputLow,m_heaterInputHigh]之間的值,發(fā)送給加熱器來控制溫度。
加熱器Heater
加熱器的控制端接受到1v(m_intputLow)到5v(m_intputHigh)之間的電壓值以后經(jīng)過線性變換轉(zhuǎn)換成0KW(m_outoutLow)到10KW(m_outputHigh)之間的功率。
謝謝你堅持讀到這里?;仡^來審視一下模型,有沒有發(fā)現(xiàn)什么問題?
是的,Controller類太大,功能也太多了。
這個問題的解決方案就是本文的話題:關(guān)聯(lián)類。當(dāng)關(guān)聯(lián)足夠復(fù)雜,復(fù)雜到必須需要利用屬性來描述細(xì)節(jié),利用操作來定義動作的時候就該關(guān)聯(lián)類出場了。
在本例中取得溫度值(GetTemperature),輸出(SetOutput)兩個關(guān)聯(lián),要進(jìn)行線性變換,各自需要四個屬性(實(shí)際上還應(yīng)該有操作),都可以定義為關(guān)聯(lián)類。就像下面這樣。
前面廢了那么多口舌,到主角的時候反而簡單了。
如果要總結(jié)的話,關(guān)聯(lián)類的內(nèi)容就是補(bǔ)充描述關(guān)聯(lián)的那些信息。
以上是“EA畫UML圖之如何實(shí)現(xiàn)關(guān)聯(lián)類”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)頁題目:EA畫UML圖之如何實(shí)現(xiàn)關(guān)聯(lián)類
文章轉(zhuǎn)載:http://www.rwnh.cn/article8/jddpip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、網(wǎng)頁設(shè)計公司、App開發(fā)、關(guān)鍵詞優(yōu)化、移動網(wǎng)站建設(shè)、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)