服务器端分层架构

时间:2021-06-24 20:13:11

标签: java architecture client-server

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

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

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