訪問硬體的設計模式

無痕幽雨發表於2018-02-22

出自《C嵌入式程式設計設計模式》這本是,算是給自己做的學習筆記吧。

一、硬體的代理模式

先來看看書上的定義:


書上介紹的很詳細了,我的理解就是硬體的代理模式就是基於介面的程式設計,程式依賴於介面,

而不是依賴於具體的實現。當我們的硬體平臺改變時候,只需要根據介面定義,再把底層驅

動全部重寫,而上層的邏輯的程式碼完全不需要改變,也就是介面遮蔽了硬體的具體實現細節。

二、硬體介面卡模式


這個設計也很好理解,當我們把硬體驅動已經寫好了,並且在其他專案已經用過了,現在有了

新的專案,原來的驅動介面和我們目前的需求可能不太匹配,這個時候,我們是選擇重新寫代

碼呢?還是想怎麼利用現有的驅動程式碼?我估計會有一部分人選擇重寫,我以前也是這麼幹的。

但是這麼做,浪費時間和精力,需要重新除錯驅動。那麼有了硬體適配模式後,我們就可以不

動以前的驅動程式,再寫一個適配層,以便舊驅動適應新的程式碼邏輯。想想生活中的例子,比

如手機type_c轉接頭,以及各種電源資料線轉接頭。

三、中介者模式


這個模式其實很好理解,打個比方,如果一件事情需要幾個人協作完成,你會怎麼做?是每個

人都可以相互通訊、協議?還是有一個人指揮,其他人只需要聽命令做事情,給反饋就可以?

幾個人可能不是很明顯,如果是幾個部門呢?其實我感覺中介者模式就是有個總的排程器,每

個部件都和排程器通訊,專注做自己的事情。這樣資訊鏈路會少,邏輯清晰。

四、觀察者模式(釋出--訂閱模式)



這裡說的很清楚了,某個感測器的代理或者伺服器有個訂閱列表,可以動態刪除和新增訂閱者資訊,

一旦有資料更新就根據列表傳送訊息或者資料。

五、去抖動模式


這個模式沒什麼可說的,通過按鍵的例子,大家就會有體會。

六、中斷模式


七、輪訓模式


相關文章