多少层太多了?

时间:2010-06-07 18:41:23

标签: c# wpf architecture mvvm n-tier-architecture

过去两年我学习软件开发的时间越多,学习的越多,似乎我遇到的灰色区域就越多。我现在遇到的一个灰色区域是试图确定应用程序应该有多少层。例如,在WPF MVVM应用程序中,什么样的分层方式可以?以下是否分开了?当我提到分层时,我的意思是为每个层创建一个新的类库。

  • 演示文稿(查看)
  • 查看模型
  • 业务层
  • 数据访问
  • 模型层
  • 公用事业层

或者对于非MVVM应用程序来说这是分开的吗?

  • Presenation
  • 商业
  • 数据访问
  • 模型层
  • 公用事业层

可以同时运行图层并为每个图层创建文件夹吗?任何着色的灰色区域都将受到赞赏。

5 个答案:

答案 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)模式的参与者。