我有一個C++類A,它捕獲微控制器上CAN接口的幀。我試圖實現另一個B類(以及C和D ..),它使用A類捕獲的幀逐個進行。實質上,類A根據幀的內容將捕獲的幀重定向到來自上層的其中一個類。我是否應該實現某種事件處理機制(我不太熟悉它是一個編程新手),這樣每次接收到一個幀時,都會從上層向類的對象觸發一個事件?或者,我可以通過從類A繼承類B,C ...來實現此目的。有人能幫助我如何在這裏開發一個好的和簡單的邏輯嗎?不同類別的對象之間的事件處理
編輯:一個不太好的方法是,我在A類中有一個switch語句,然後根據一個case調用類B,C,D,...之一的所謂過程方法值。然而,這不是一個聰明的方式,因爲現在A類使用B,C,D等等,這是我不想要的。 A類不應該知道類B,C,D,......
我可能會爲每個處理器定義一個通用接口(基類),它將聲明一個「工作/進程」函數。我會把它們全部存放在一個容器中。我將有一個「控制器」類,它將使用類A獲取框架並將其傳遞給每個列表控制器。現在,您如何生成控制器列表取決於您,這取決於訂單是否重要等... –
我做了一個編輯。你能再看一次嗎? – Paindoo
我明白了,你的意思是隻有一個B,C或D類可以處理這個幀。你知道哪一個字段值。這是工廠設計模式的一種非常常見的用法,請在谷歌上查看它。如果你不知道哪一個,那麼你可以使用不太常見的責任鏈模式,但是如果你願意的話,我可以寫一些僞代碼。 –