我已经开发了一个WPF应用程序,使用了Prism
和Unity
框架,我对以下内容有一些担忧,无论我是否已正确实施它们。如何使用棱镜和Unity实现真正的松耦合
抽象类/接口 - 我已经在一个程序集中的所有层次构成接口,然后引用它在各个图书馆实施。现在,引用的库可以访问其他层的所有非必需接口。对于例如服务层可以访问
UI
接口。这是clear separation
的正确实施,还是应该将其拆分为多个部件。查看模型依赖关系 - 我主要使用
EventAggregator
在视图模型之间进行通信。在某些情况下,我直接在构造函数中传递其他视图模型的实例,并使用DI容器解析它。我想通过引入界面来实现清晰分离,省略直接视图模型依赖关系。如何将视图模型的接口组织为独立的程序集,以便其他开发人员可以理解。为了避免创建多个UI项目,我只创建了一个程序集并将它们逻辑分隔到文件夹中。摘要模块类 - 代替在
bootstrapper.cs
文件中指定的所有依赖关系的,我分解它们各自模块中。我的大部分lib库项目都提到了Prism库。因此,UI特定的名称空间被添加到非UI
相关项目中。有没有更好的方法来实现这一目标?
非常感谢。如果我可以问,请帮助我进一步理解以下几点。 **抽象模块类** - 是否是一个好主意,实现一个逻辑来显示/隐藏视图基于某些事件为各自的UI模块。对于例如如果没有连接,我想隐藏所有模块并显示错误屏幕。目前,我有一个单独的'ViewManager',它在一个地方卸载所有的视图。我想在每个“UI”模块中改变这种逻辑,但我对发布如此多的通知持怀疑态度。 –
如果这是一个影响所有模块的事件,我会对它作出集中反应。您可以在覆盖整个外壳的外壳中添加一个区域,通常为空。直到连接丢失,然后将该区域导航到隐藏整个应用程序的错误屏幕。这样,您只需对连接丢失做出一次反应,并确定该UI已禁用。 – Haukinger