c# - 设计架构,分离项目。我是 "over thinking"吗?

标签 c# visual-studio architecture

想象一下有以下场景:

您需要创建一个后端与前端分离的系统,当然,这在编程时始终很重要。但是,如果您希望能够在不更改前端的情况下完全更改后端怎么办?

例如,当创建一个大型网站时,我会进行以下项目:

数据 - 处理所有数据连接,即 LINQ 生成的文件和其他部分覆盖。

Interfaces - 这一层很有趣,这是溢出了吗?将接口(interface)分开是因为,业务逻辑和数据层可能有很多共同的接口(interface),而不是从前面引用数据层,您可以引用接口(interface)层,然后让业务逻辑向您发送一个接口(interface),而不是了解数据层中数据对象的正确类和结构。

业务逻辑 - 这本身就是应用程序的业务逻辑。

前端 - Web、GUI 或任何需要的东西,当然是代码方面的。

我的问题真的是,这是层层和思维的溢出吗?也许接口(interface)层不重要?有什么建议吗?

最佳答案

接口(interface)层只是您将其与其他所有内容分开定义的意义上的一个层。然而,接口(interface)应该只定义服务的边界,因此它不会充满代码。

我看不出如何在不定义接口(interface)传递接口(interface)的情况下传递接口(interface),我认为这做得太过头了。

如果您想以设计为先,请从一组简单的界面开始,但如果您发现自己没有预先考虑所有可能性,请准备好扩展它们。

真的,你有

  • 数据+数据接口(interface)
  • 业务逻辑+接口(interface)
  • 前端 + 图形用户界面

每一层都在某种程度上使用和封装了前一层。接口(interface)实际上并没有单独的层,或者您会在层之间放置什么?接口(interface)只是表示两个事物之间的边界,因此请这样使用它。

概括和泛化是非常诱人的,但最终你只是设计了一种新的编程语言或范式。大多数时候,这不是简报的一部分。

简介!当然,我们忘记了这一点。从那开始,确定您的接口(interface),然后开始编写最简单的用例。思维会随着你的前进而发展。

关于c# - 设计架构,分离项目。我是 "over thinking"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/339951/

相关文章:

c# - 如何将 C# 中的两个 docx word 文件与动态汇编进行比较?

c# - 如何使用 Microsoft.Exchange.WebServices?

oop - 清洁架构 - Robert Martin - 用例粒度

java - 微服务中的事务

c# - 将信息传回控制台应用程序窗口的批处理

c# - 如何将 .jpg 包含到 dll 中?

c# - 如何将日期时间字符串转换为自定义日期时间

c# - 如果我在 Visual Studio 中开发 Excel 应用程序,是否会失去宏录制的好处?

c++ - 关于 getaddrinfo() C++?

architecture - 领域事件处理程序 - 它们应该用于应用层问题吗?