我試圖在C++中設計一個通信協議,並且想要抽象出協議的各個層,以便在將來可以更改它們,而無需更改整個應用程序。C++中的協議設計,循環類成員
到目前爲止,我已經設計了這個:
- 應用---如。氣候> SetTemperature(70);
- 模塊(如氣候)---例如。 protocol-> SetRegister(23,70);
- 協議層---例如。 msg [] = {0x4C,0x55,0x17,0x46}; comm-> SendPacket(msg);
- 通信層
在返回路徑上時發生該問題:
- 通信層
- 協議層
- 模塊
- 應用
我不真的應用程序不斷地向模塊詢問數據,然後模塊詢問協議,協議詢問通信層,但每個類中的回調「冒泡」數據看起來很混亂。通常情況下,只有通信層纔會知道是否有任何值得進一步處理的數據(通過協議層等)
是否有更好的設計模式?
問題是什麼? – jsantander
這是標準的東西。 [事件和觀察者](http://en.wikipedia.org/wiki/Observer_pattern)。亂?我不知道,每個人都這樣做。 –
雜亂無章,因爲每個事件只有一個觀察者,協議和模塊都是主題和觀察者 - 協議將觀察通信,模塊將觀察協議,例如模塊將使用協議和使用通信的協議(即,它是雙向的)。所以我不認爲設計模式符合要求。 – Moose