C# 设计架构,分离项目。“是我吗?”;过度思考;?

C# 设计架构,分离项目。“是我吗?”;过度思考;?,c#,visual-studio,architecture,C#,Visual Studio,Architecture,想象一下以下场景: 您需要创建一个后端与前端分离的系统,当然,这在编程时总是很重要的。但是,如果您希望能够完全更改后端而不更改前端,该怎么办 例如,在创建大型网站时,我会选择以下项目: 数据-处理所有数据连接,即LINQ生成的文件和其他部分覆盖 接口-这一层很有趣,这是溢出吗?将接口分开是因为,业务逻辑和数据层可能有许多共同的接口,而不是从前面引用数据层,您可以引用接口层,然后让业务逻辑向您发送一个接口,而不是了解数据层中数据对象的正确类和结构 业务逻辑——这本身就是应用程序的业务逻辑 前端-网

想象一下以下场景:

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

例如,在创建大型网站时,我会选择以下项目:

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

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

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

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


我的问题是,这真的是层出不穷的想法吗?接口层可能不重要吗?建议?

界面层只是一个层,从这个意义上讲,您可以将它与其他任何东西分开定义。然而,接口应该只定义服务的边界,所以它不会充满代码

如果不定义一个接口传递接口,我看不出如何传递一个接口,我认为这太过分了

如果你想先进行设计,就从一组简单的接口开始,但是如果你发现你没有预先考虑到所有的可能性,就要准备好扩展它们

所以说真的,你有

  • 数据+数据接口
  • 业务逻辑+接口
  • 前端+图形用户界面
在某种程度上,每一层都使用并封装了上一层。接口实际上没有一个单独的层,或者在层与层之间放置什么?接口只是指两个事物之间的边界,所以就这样使用它

一个接一个的泛化是很有诱惑力的,但是你最终只是设计了一种新的编程语言,或者说范式。大多数情况下,这不是简要说明的一部分


简报!当然,我们忘了。首先,确定您的接口,并开始编写最简单的用例。这种想法会随着你的进步而发展。

谢谢。这对我的思考有很大帮助,我想我会将每个接口分离到合适的层。当然,将所有层接口放在一个层中是愚蠢的!