后端软件架构设计有哪些?

后端开发中的3层架构、4层架构、5层架构都是常见的软件架构模式,用于将应用程序划分为不同的层级,并使不同的层级职责分离,便于维护和扩展。以下是它们的简要介绍:

  1. 3层架构:将应用程序划分为表示层、业务逻辑层和数据访问层三个层级。表示层负责用户界面的展示、输入和输出;业务逻辑层负责处理业务逻辑和数据校验;数据访问层负责与数据库进行交互,执行数据操作。这种架构模式的优点是结构清晰、职责分离、易于维护和扩展。
  2. 4层架构:在3层架构的基础上,增加了一个服务层。服务层负责处理业务逻辑和数据校验,将表示层和数据访问层解耦,使得应用程序更加灵活、可扩展和易于维护。
  3. 5层架构:在4层架构的基础上,增加了一个基础设施层。基础设施层包括与应用程序相关的基础设施,如日志、缓存、消息队列等。这种架构模式的优点是更加灵活、可扩展、易于维护和测试。

总的来说,这些架构模式都是为了将应用程序划分为不同的层级,使得不同的层级职责分离,便于维护和扩展。不同的架构模式适用于不同的场景,开发人员可以根据实际情况选择合适的架构模式。

我们开发的时候 往往都是 三层架构 即 controller、service、dao层。往往开发的时候,各种各样的需求 需要我们添加新的层次去操作。

先讲解下 基础的三层架构

先模拟一个场景:饿了想喝水,人体是如何执行呢?

  • Controller层 是对前端或者接口的响应一个逻辑处理的层。可理解成 大脑,得知身体发送的请求,需要去喝水了,就去找Service 神经中枢 去找具体器官 操作。
  • Service层 是对Controller的功能的响应一个逻辑处理的层,是对后台的有关联的逻辑的一个处理。可理解成神经中枢,得到大脑的指令,就开始去找器官,让器官干活。
  • Dao层 是对Service的功能的响应的实现,这个层级调用的是数据库,这个层级调用sql代码的,这里 理解成(器官)手,开始拿起杯子 喝水。

最近,看到一些讲到 vo、dto等各种各样的层次,本篇文章,就对此做下讲解。

VO

Value Object 值对象 也可以理解成视图对象。出参
主要体现在视图的对象,对于一个WEB页面将整个页面的属性封装成一个对象。然后用一个VO对象在控制层与视图层进行传输交换。

DTO

Data Transfer Object 数据传输对象。入参

含义:DTO (经过处理后的PO,可能增加或者减少PO的属性)

比如我们一张表有100个字段,那么对应的PO就有100个属性。
但是我们界面上只要显示10个字段,客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,这时我们就可以用只有这10个属性的DTO来传递结果到客户端。

PO

Persistant Object持久对象,从DB获取到的数据。

利用BeanUtils实现DTO、PO、VO的互转

    // 注意:此BeanUtils是Spring官方的!也可使用Apache-comment包下的
    @Test
    void UserToVO() {
        User user = new User("张三", 21, true);
        UserVO userVO = new UserVO();
        BeanUtils.copyProperties(user,userVO);
        // System.out.println(userVO);
    }
特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取全部资料 ❤