过去两年我学习软件开发的时间越多,学习的越多,似乎我遇到的灰色区域就越多。我现在遇到的一个灰色区域是试图确定应用程序应该有多少层。例如,在WPF MVVM应用程序中,什么样的分层方式可以?以下是否分开了?当我提到分层时,我的意思是为每个层创建一个新的类库。
或者对于非MVVM应用程序来说这是分开的吗?
可以同时运行图层并为每个图层创建文件夹吗?任何着色的灰色区域都将受到赞赏。
答案 0 :(得分:2)
答案是,这取决于。首先,单独的类库并不总是意味着单独的“层”。层是相关功能的概念分组,可能会也可能不会在单个程序集中表现出来。
您创建的图层数实际上取决于您手头的问题。传统上,WPF MVVM应用程序至少包含3个层(模型,视图,视图模型),但它实际上可以变化。通常我会在同一个程序集中看到Views和ViewModels,并在自己的程序集中看到模型(通常因为Model对象是在其他上下文中使用的POCO)。
真的没有银弹可以回答你的问题,这完全取决于你的问题。 “分层”和分离的优点是增加可维护性,促进代码重用,并提高整体清晰度(仅举几例)。
我认为,如果您没有使用当前的分层解决方案实现这些目标,那么您还有改进的空间。如果增加图层降低清晰度或可维护性,那么您已经走得太远了。如果您只有一个“图层”并且它变得臃肿,那么您就有机会添加图层。
最重要的是,为了遵循严格的“模式”,不要过度设计。如果模式对你有明显的好处,你手头的问题就可以实现,但要明白你为什么要这样做以及每个“层”的目标是什么。
答案 1 :(得分:2)
考虑以下几个方面:
...然后根据您评估的哪些内容调整您的架构。我可能错过了其他一些重要的部分,但你明白了。对此没有正确或错误的答案。
答案 2 :(得分:2)
如果图层本身成为项目可维护性的障碍而不是提高可维护性,则应用程序只有太多层。
答案 3 :(得分:2)
太多的确切层数比需要的多1层。
答案 4 :(得分:1)
Layered Architecture:本文介绍.NET / WPF富客户端应用程序的具体示例架构。此外,该体系结构显示了在哪个层中找到了Model-View-ViewModel(MVVM)模式的参与者。