软件架构模式之第三章:分层架构-示例

时间:2024-02-16 11:28:40

为了阐明分层架构的工作原理,考虑一个来自业务用户的请求,要求检索特定个人的客户信息,如图3-4所示。请注意箭头显示请求向下流动至数据库以检索客户数据,并且响应向上流回屏幕以显示数据。

Figure 3-4. An example of the layered architecture

在这个例子中,客户信息包括客户数据和订单数据(由顾客下的订单)。在此情况下,顾客界面负责接收请求并显示顾客信息。它不了解数据存储位置、检索方法或需要查询多少数据库表才能获取数据。

一旦客户屏幕接收到获取特定个人客户信息的请求,它会将该请求转发给表示层中的客户代理模块。这个模块负责确定业务层中能够处理该请求的模块,并决定如何访问这些模块以及所需数据(合同)。业务层中的客户对象负责聚合所有获取客户信息所需的数据。随后,客户对象模块调用持久化层中的客户DAO(数据访问对象)模块来检索客户数据,并调用订单DAO模块来获取订单信息。这些模块依次执行SQL语句以检索相应数据并传递回业务层中的客户对象。一旦客户对象接收到数据,它会聚合这些数据并将信息传递回给客户代理,然后由此将数据传递给用户展示在用户界面上。