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

标签 java architecture software-design three-tier

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

首先,我创建了三个基本包:演示应用程序数据。此外,我还包含了一个关于 Boundary 类的包,即发送请求的各种 GUI。

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

在数据层中,我放置了一个DatabaseConnection类(与数据库通信的类,负责加载驱动程序、连接到数据库、查询等)和DAO类(数据访问对象,与数据库交互)。

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

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

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

按照这个架构,如何进行简单的登录呢? 请记住,每个级别只能与底层进行通信; 例如,Boundary层中的类不能直接与Data层中的类通信,Boundary层中的类只能与Presentation层中的类通信。 如果有必要,您可以发布伪代码,其中包含要执行的步骤的想法。

最佳答案

您的边界仅调用表示层上的基本方法。

假设用户单击按钮来创建用户,流程如下:Boundary 调用 FrontController 上的方法 createUser(String name, intage) ( 表示层)。 Controller 可以检查一些基本的(UI 相关的)事物,然后调用应用程序层上的类似方法。

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

数据层只是插入给定的信息。

关于java - 三层架构风格如何运作?一些方便的例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44866398/

相关文章:

java - Jersey web.xml 到基于注释的配置以及 HK2 绑定(bind)

java - 命令行 Java 调试器

user-interface - UI应该什么时候更新?

architecture - 运行时 AOP 与编译时 AOP

WPF MVVM WCF 客户端/服务器架构

typescript - TypeScript/Angular2 中的 DTO 设计

javascript - 将我的函数式 JavaScript 代码转换为面向对象的设计是否值得?

java - 嵌套循环打印一个数字,旁边有相同数量的星号

java - Spark : Remove Content-Type header

c# - 在 DDD 中拥有独立的领域模型和持久性模型