在我的應用程序中我有三個接口ICapture<T>
,IDecoder<T, K>
和IBroadcaster<K>
。對象操作鏈接
現在我執行例如VideoCapture
類繼承Capture<IntPtr>
(IntPtr是類生成的原始數據)。當數據由VideoCapture
的對象生成時,首先我想將它從T
解碼爲K
,然後廣播它。
我想知道的是:你會如何鏈接?簡單地寫一個像
var data = videoCapture.GetData();
var decoded = decoder.Decode(data);
broadcaster.Broadcast(decoded);
或者有沒有任何設計模式,我可以使用?我知道責任鏈模式。我可以想象寫作類CaptureHandler
,DecoderHandler
和BroadcastHandler
繼承HandlerBase
。 HandlerBase
將提供將對象移交給下一個處理程序的機制。
var handler1 = new CaptureHandler();
var handler2 = new DecodeHandler();
handler1.SetNext(handler2);
handler1.Handle(object);
但我不知道如果這是我的情況最好的方法。
你希望寫什麼比第一版更清晰或更有用?那個對我來說似乎很簡單。 – mquander
如果捕獲,解碼器和廣播公司都是接口,您應該重命名它們以'I'開頭。這是一個標準的.NET命名約定,它會使你的代碼更容易理解和閱讀。 –
不要過時,只是[保持簡單](http://en.wikipedia.org/wiki/KISS_principle)...你的第一個代碼段很好 –