想象一下有以下场景:
您需要创建一个后端与前端分离的系统,当然,这在编程时始终很重要。但是,如果您希望能够在不更改前端的情况下完全更改后端怎么办?
例如,当创建一个大型网站时,我会进行以下项目:
数据 - 处理所有数据连接,即 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/