從乙個例子開始今天的說明。
假設有乙個系統,收到外界的事件通知以後,根據裝置id,將事件**給適當的裝置。按照之前的說明我們可以建模如下。
系統按照以下方式執行:
eventcreater生成event並設定deviceid
eventcreater將生成的event傳送給eventdistributor
eventdistributor根據deviceid檢索對應的device
將event傳送給device
對於每乙個eventdistributor,可能有多個eventcreator向它傳送event。也可能有多個裝置接收由它轉來的event。
為了提高檢索速度,我們將sendevent關聯的device端的有序性設定為,即:結構有序,而且在這個列表中每個device只能出現一次。
我們知道,有序性為的資料結構,可以是陣列,也可以是鍊錶。查詢是一般採用的線性查詢。這種設計可以實現功能,而且被大量使用著。
怎麼樣,夠了麼?
應該有很多人想到了,還不夠快,可以雜湊表,b樹嘛!對了就是這個。我們今天的話題:限定關聯。利用限定關聯以後,類圖會變成下面這個樣子。
注 意觀察eventdistributor右邊的小框。這種表達方式就是限定關聯。圖中的eventdistributor和device之間的 sendevent關聯可以理解為:在eventdistributor中通過deviceid可以決定唯一的乙個device。
進一步講,引入deviceid限定符以後,除了通過deviceid取得唯一的device這件是意外,它還附帶了另外的含義:應該讓這種操作更有效率,差不多就等於要求採用更有效率的資料結構。
限定關聯還是通過關聯端屬性設定對話方塊進行的。
圖中有兩處變化,一是紅框中qualifiers專案設成了deviceid,而是綠框中多重度從「*」改到了1。
如果閱讀本文能給您帶來些許收穫,歡迎分享給更多的朋友!
EA UML日拱一卒 類模板
模板和泛型程式設計也是c 中很重要的一部分,相信很大一部分程式設計師都用過某種容器類。但一般來說也就是用用而已,並不會自己構建類模板或者在建模中使用類模板。本文介紹ea中類模板的建立類模板和使用類模板的方法。建立類模板 假設我們要建立乙個對映類 假設而已,可別真去建立 mymap,它有兩個引數,乙個...
日拱一卒(一)
layer list 用來多個圖層堆疊顯示的 在drawable資料夾下建立乙個xml檔案。比如 background.xml 另外在layout檔案中指定background屬性這樣就會載入pic1和pic2這兩張。imageview android background drawable bac...
日拱一卒(十四)
git 初識 1.安裝 linux sudo apt get install git core 2.建立 倉庫 linux下開啟shell,windows開啟git bash 1 配置下身份 git config global user.name tony git config global use...