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

时间:2017-07-02 00:05:22

标签: java architecture software-design three-tier

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

首先,我创建了三个基本软件包:演示文稿应用程序数据。此外,我还提供了一个关于边界类的包,以及发送请求的各种GUI。

在Presentation层中,我只放了一个前端控制器,它封装了使用该应用程序的客户端所需的表示逻辑。

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

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

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

Main ---> 边界> 演示文稿> 申请> 数据>的数据库

根据这种架构,我该如何进行简单的登录? 请记住,每个级别只能与基础级别进行通信; 例如,Boundary层中的类不能直接与Data层中的类通信,Boundary的类只能与Presentation类进行通信。 如有必要,您可以发布一个伪代码,它可以了解要执行的步骤。

1 个答案:

答案 0 :(得分:1)

您的边界仅调用演示文稿图层上的基本方法。

让用户点击按钮创建用户,流程如下:边界调用FrontController上的方法createUser(String name, int age)演示文稿层)。 Controller可以检查一些基本的(与UI相关的)事物,然后在应用程序层上调用类似的方法。

应用程序层现在可以处理一些进一步的检查(例如:允许当前活动用户创建用户吗?)。 应用程序图层获取给定的信息(名称和年龄),基于此创建DAO并调用方法在数据图层(DAO)上创建用户。 / p>

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