gpt4 book ai didi

java - Java 中的三层系统如何工作?

转载 作者:行者123 更新时间:2023-12-02 11:20:13 27 4
gpt4 key购买 nike

Java 中的三层系统如何工作?

有人可以用一些简单的例子向我解释一下吗?

最佳答案

这是基本思想,实际上可以或多或少地源自第一原理,即 Parnas 的规则,即模块应该隐藏一个 secret :

  • “前端”层拥有制作可见演示文稿的秘诀
  • “中间层”掌握着管理系统行为的 secret
  • “后端”掌握着如何持久保存数据的 secret 。

  • 在基于 Java 的系统中,这意味着

    前端

    有一个网络服务器,演示文稿是用 HTML、CSS 和 Javascript 构建的。有几种技术可以实现这一点,但最以 Java 为中心的技术是 Java Server Pages,它有效地从嵌入了 Java 的脚本生成 HTML。一种在更高级别上管理 JSP 的众所周知的方法称为 Struts。 .

    有许多工具可以简化这一点;也许最常见的是 Spring . (Spring 还提供了一些其他更适用于中间层的东西。)

    另一种现在非常少见的选择是在客户端机器上运行 Java 应用程序前端。

    中间层

    中间层以可用的形式为前端提供数据。在 Java 世界中,这通常是通过将“对象”呈现给前端的“应用程序服务器”来完成的。解决这个问题的真正核心解决方案称为 Enterprise Java Beans (EJB),但事实证明这对于除了最大的系统之外的任何系统都过于复杂。现在更经常使用像 Hibernate 这样的持久层来完成。 ,它为中间层的其余部分提供 Java 数据访问对象。 (要了解有关此的更多信息,您需要研究所谓的“对象和关系数据库的阻抗不匹配问题”。)

    后端

    3 层系统中通常的后端是现成的数据库,尽管它可以是任何东西,从 Hadoop 和 BigTable 到使用 Java 序列化将状态存储为文本文件的东西。后端负责保持该状态,以便它持续存在并可以再次找到。 Hibernate 等工具的存在本质上是为了向数据库提供更清晰、更通用的接口(interface),但 Java 有 JDBC从第一个接口(interface)(好吧,几乎是第一个,Java 1.1)使数据库可用。

    n 层系统

    在大型系统中,这种分割可以进一步分割。例如,“前端”可以看作是两层:浏览器中的表示层和服务器中的表示支持层。例如,在这种故障中,服务器端可能会管理 session 和身份验证。同样,您可以将中间层和后端之间的接口(interface)本身视为一个层,即“阻抗匹配层”。现在,Hibernate 有了自己的层。

    另一方面,系统具有生成 HTML 的表示层或实现为直接与数据库后端对话的 Java 客户端应用程序的情况并不少见,在这种情况下,您有一个“两层系统”。

    Java不是原因

    这里要注意的最后一件事是,Java 不是拥有 2、3 或 5(或更多——浏览器本身是一个层吗?)层的原因或基础。相反,它是一个架构决策,因为您希望将可能会更改的部分绑定(bind)到相同的组件中。在现实生活中,业务相当稳定;一旦你融合了一个领域模型,它就不会发生太大变化。当表示发生变化时,域模型通常不会——因此将其分离到表示层中。另一方面,您可以选择不同的数据库实现,而无需更改业务模型(域模型)或表示形式——因此将其设置为单独的层。这会导致系统更加健壮,因为更改并不意味着整个系统的代码中断。

    这种期望的稳健性是多层系统的原因。

    关于java - Java 中的三层系统如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6182750/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com