服务器端分层架构

Layered Architecture for Server Side

所以我是架构模式的新手,最近遇到了一个问题:我有一个服务器端(和一个在 Android 上的客户端);服务器端有业务逻辑层、数据层(SQL)和持久层(Hibernate)。我知道分层架构也应该包含一个表示层,直到现在我都习惯将所有层都放在一个地方(只有一个模块,而不是服务器和客户端分开)。如果是这种情况,服务器的体系结构是否仍被视为分层体系结构?鉴于我可以说客户端具有 MVC 架构,并且应用程序作为一个整体具有客户端-服务器架构,但我不确定服务器是否可以被视为具有分层架构。谢谢,很抱歉,如果这是一个愚蠢的问题,但搜索后找不到任何相关内容。

我会说是的。对于事物的客户端和服务器端,您将拥有不同的层。客户端将只有一个表示层,用户可以像 GUI 界面一样与之交互,而服务器将有一个表示层,如 Rest 界面,客户端可以与之交互。相同的概念只是不同的实现。在任何情况下,它仍然会在没有表示层的情况下分层,因为仍然不止一层。

@Heyo的回答是正确的,但我会详细说明。

层可以采用多种形式,但至少在逻辑上是分开的;这意味着您可以拥有 UI / API 代码,它调用业务逻辑代码,调用数据访问代码,即从不 UI / API 代码直接调用数据访问代码,或者UI / API 代码、逻辑代码和数据访问代码混合在一起(例如数据访问代码嵌入在 UI 代码中)。

所以是的,您可以将所有代码写入一个代码文件(我猜这取决于您的技术堆栈),但它不会很漂亮(易于维护)。

对您的逻辑分层的一个很好的测试是,您是否可以采用各种代码(类 等)并重新安排物理代码结构。例如。放入不同的程序集或包中,并让它们仍然有效。