三层架构风格如何运作?一些方便的例子

How does the Three Tier architectural style works? Some handy example

我已经获得了应用三层架构风格的 Java 应用程序;要执行的用例之一是 login。 我已经研究了适用于这种架构风格的所有理论和规则,但我需要了解各个级别之间对象合作的逻辑,以及模式如何在每个级别上协同工作以实现这种(和其他)使用案例.

首先,我创建了三个基本包:PresentationApplicationData.此外,我还包含了一个关于 Boundary classes 的包,从中发送请求的各种 GUI。

在表现层,我只是放了一个Front Controller,它封装了客户端使用应用程序所需的表现逻辑。

在Data层,我放了一个DatabaseConnection class(Class 和数据库通信,负责加载驱动,连接数据库、查询等)和 DAO classes(数据访问对象,与数据库交互)。

真正的问题是,我不知道在Application层放什么,它代表了应用程序的主要部分,定义了应用程序的领域模型,即:它们的实体,它们的关系,以及应用逻辑。它不应包含任何有关如何向用户呈现数据或如何保存数据的参考。

所以,我目前有这个层次结构:

主要 ---> 边界 > 演示 > 应用程序 > 数据 > 数据库

按照这个架构,如何做一个简单的登录? 请记住,每个级别只能与底层通信; 例如,Boundary 层中的 class 不能直接与 Data 层中的 class 通信,Boundary 的 classes 只能与 Presentation 的 classes 通信。 如果需要的话,可以post一个伪代码,里面做的思路步骤。

您的 Boundary 仅调用 Presentation 层上的基本方法。

假设用户单击按钮创建用户,流程如下:Boundary 调用 FrontController 上的方法 createUser(String name, int age)演示层)。 Controller 可以检查一些基本的(UI-相关的)东西,然后会在 Application 层上调用类似的方法。

Application层现在可以处理一些进一步的检查(例如:是否允许当前活动用户创建用户?)。 Application层获取给定信息(姓名和年龄),基于该信息创建 DAO 并调用方法在 Data 上创建用户层 (DAO).

数据层简单地插入给定的信息。