我已經開發了一個WPF應用程序,使用了Prism
和Unity
框架,我對以下內容有一些擔憂,無論我是否已正確實施它們。如何使用棱鏡和Unity實現真正的鬆耦合
抽象類/接口 - 我已經在一個程序集中的所有層次構成接口,然後引用它在各個圖書館實施。現在,引用的庫可以訪問其他層的所有非必需接口。對於例如服務層可以訪問
UI
接口。這是clear separation
的正確實施,還是應該將其拆分爲多個部件。查看模型依賴關係 - 我主要使用
EventAggregator
在視圖模型之間進行通信。在某些情況下,我直接在構造函數中傳遞其他視圖模型的實例,並使用DI容器解析它。我想通過引入界面來實現清晰分離,省略直接視圖模型依賴關係。如何將視圖模型的接口組織爲獨立的程序集,以便其他開發人員可以理解。爲了避免創建多個UI項目,我只創建了一個程序集並將它們邏輯分隔到文件夾中。摘要模塊類 - 代替在
bootstrapper.cs
文件中指定的所有依賴關係的,我分解它們各自模塊中。我的大部分lib庫項目都提到了Prism庫。因此,UI特定的名稱空間被添加到非UI
相關項目中。有沒有更好的方法來實現這一目標?
非常感謝。如果我可以問,請幫助我進一步理解以下幾點。 **抽象模塊類** - 是否是一個好主意,實現一個邏輯來顯示/隱藏視圖基於某些事件爲各自的UI模塊。對於例如如果沒有連接,我想隱藏所有模塊並顯示錯誤屏幕。目前,我有一個單獨的'ViewManager',它在一個地方卸載所有的視圖。我想在每個「UI」模塊中改變這種邏輯,但我對發佈如此多的通知持懷疑態度。 –
如果這是一個影響所有模塊的事件,我會對它作出集中反應。您可以在覆蓋整個外殼的外殼中添加一個區域,通常爲空。直到連接丟失,然後將該區域導航到隱藏整個應用程序的錯誤屏幕。這樣,您只需對連接丟失做出一次反應,並確定該UI已禁用。 – Haukinger