我正在嘗試從體系結構和設計的角度理解事件聚合器模式。我之前從未在WPF中使用Prism,但我正在研究它在MSDN上的工作原理。發佈到事件聚合器的每個小事件是否都需要是自己的空CompositePresentationEvent?
在我看來,對於每一個事件,用戶必須創建一個新的事件對象來擴展CompositePresentationEvent
。它也似乎是新的事件對象沒有其他功能(它通常沒有自己的代碼)。
因此,例如:
一個AddNewStuffEvent
會是什麼樣子:
public class AddNewStuffEvent : CompositePresentationEvent<Object> {} //The end of the class
對於HealthChangeEvent
:
public class HealthChangeEvent: CompositePresentationEvent<Object> {} //The end of the class
對於BookFlipEvent
:
public class BookFlipEvent: CompositePresentationEvent<Object> {} //The end of the class
對於BookCloseEvent
:
public class BookCloseEvent: CompositePresentationEvent<Object> {} //The end of the class
這可以永遠繼續下去,每一個小的小事件BookOpenEvent
,BookTearEvent
等,所以,在一個特定的命名空間中的文件夾,會有一個整體噸事件類的,和事件聚合器將在運行時加載所有這些事件對象。那就是,每一個小小的事件都需要一個空的課程?這是如何工作的?有什麼可以更好的方式呢?
@dbaseman是對的,但我也同意你的看法,它似乎有點尷尬。不是因爲你需要創建幾十個小類 - 我根本不介意 - 但是因爲它使用* type *作爲* name *,而不是一個真正的類型,它是爲了實現強打字而彎曲一點語言,仍然比替代方式更好 –