国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

簡(jiǎn)單易懂的理解java開發(fā)中的 DO、BO、DTO、VO、AO都是什么?

這篇具有很好參考價(jià)值的文章主要介紹了簡(jiǎn)單易懂的理解java開發(fā)中的 DO、BO、DTO、VO、AO都是什么?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

這些只是開發(fā)的規(guī)范,規(guī)范就是建議遵守的,大家都這樣做,長(zhǎng)期以來就形成了一種開發(fā)規(guī)范,便于我們開發(fā)。
DO、BO、DTO、VO、AO他們都是普通的Java類,只不過通常我們把他們放在DO、BO、DTO、VO、AO名的包下,結(jié)尾以DO、BO、DTO、VO、AO命名放在這些包下的類。

有時(shí)DO也會(huì)放在名為PO(Persistent Object)的包下

DO

DO(Data Object)
先介紹最簡(jiǎn)單的DO,一個(gè)DO你就可以理解為一張Mysql里的表,不過這個(gè)表是實(shí)體的一個(gè)Java類,一個(gè)DO的對(duì)象就表示mysql里的一條數(shù)據(jù)。

準(zhǔn)確的說,DO也并不是對(duì)應(yīng)于Mysql的一張表,可以表示應(yīng)用程序中任何一個(gè)具有實(shí)體屬性的對(duì)象。一般來說DO應(yīng)該包含業(yè)務(wù)屬性和持久化屬性兩個(gè)方面,既保證了業(yè)務(wù)對(duì)象的正確性和完整性,又保證了數(shù)據(jù)的可持久化和可恢復(fù)性。

下面是一個(gè)DO的例子。

package com.xut.yiban.user.entity.po.dormitory;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 宿舍類
 * @author kerwin
 * @create 2023-04-17 13:02
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Dormitory {
    /**
     * 宿舍號(hào) 復(fù)合主鍵1
     */
    @TableId(type = IdType.NONE)
    private String dorm_num;

    /**
     * 宿舍樓
     */
    private String dorm_building;

    /**
     * 學(xué)院id
     */
    private int college_id;

    /**
     * 校區(qū)id
     */
    private int campus_id;

}

DTO

DTO(Data Transfer Object)
DTO 簡(jiǎn)單理解就是接收前端傳遞過來的數(shù)據(jù)的,比如前端給你傳遞一個(gè)POST請(qǐng)求,你想用對(duì)象進(jìn)行接收,此時(shí)我們就會(huì)使用DTO對(duì)象來接收。

下面是一個(gè)DTO的例子,我們用SaveCheckMissionDTO類來接收前端傳遞過來的POST請(qǐng)求的請(qǐng)求體對(duì)應(yīng)參數(shù)

    /**
     * 功能模塊:宿舍檢查
     *
     * 用于存儲(chǔ)一次檢查任務(wù)的發(fā)布
     * @param saveCheckMissionDTO 一個(gè)封裝的接收類
     * @return
     */
    @PostMapping("/set_and_publish_check")
    public HttpResult publish_check(@RequestBody SaveCheckMissionDTO saveCheckMissionDTO){
        return dormitoryService.publish_check(saveCheckMissionDTO);
    }

SaveCheckMissionDTO類如下

/**
 * 用于接收的前端傳遞的參數(shù)的類
 * @author kerwin
 * @create 2023-04-18 0:09
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SaveCheckMissionDTO {
    private Map<String,ArrayList<String>> checkRange;
    private String percent;
    private String startTime;
    private String endTime;
    private String excelInfo;
    private ArrayList<TeacherinfoDTO> teachers;
}

VO

VO(View Object)
VO簡(jiǎn)單來說,就是我們返回給前端數(shù)據(jù)用的對(duì)象就是VO,比如你從數(shù)據(jù)庫查了一些表的部分信息,封裝之后,要返回給前端,此時(shí)你就你可以用一個(gè)VO來進(jìn)行封裝,返回給前端。

在實(shí)際項(xiàng)目中也可能存在根據(jù)具體接口和需求創(chuàng)建獨(dú)立AO類的情況。

舉例如下

    @Override
    public HttpResult judge_previous_status() {
        PreviousInfoVO previousInfoVO = dormitoryMapper.judge_previous_status();
        return previousInfoVO==null? HttpResult.success():HttpResult.success(previousInfoVO);
    }

一個(gè)VO類的例子

/**
 * 查詢有沒有正在進(jìn)行的查寢任務(wù),有的話把這個(gè)返回
 *
 * @author kerwin
 * @create 2023-04-26 19:48
 */
@Getter
@Setter
public class PreviousInfoVO {
    private String startTime;
    private String endTime;
}

BO

BO(Business Object)
BO作為服務(wù)層的對(duì)象,舉個(gè)例子,針對(duì)一個(gè)在線商店,商店中的商品、訂單和用戶等都屬于業(yè)務(wù)對(duì)象。以商品為例,商品有價(jià)格,商品描述等屬性,還有一些添加商品、刪除商品的方法,那么用于描述商品的一個(gè)類,我們就可以歸類為BO。

public class ProductBO {
    private String productId;
    private String productName;
    private BigDecimal price;
    private String description;
    // getter and setter methods
    
    public void addProduct(ProductDO product) {
        // 根據(jù)業(yè)務(wù)邏輯處理商品添加操作
    }
    
    public void updateProduct(ProductDO product) {
        // 根據(jù)業(yè)務(wù)邏輯處理商品更新操作
    }
    
    public void deleteProduct(String productId) {
        // 根據(jù)業(yè)務(wù)邏輯處理商品刪除操作
    }
    
    public List<ProductVO> queryProductList() {
        // 根據(jù)業(yè)務(wù)邏輯查詢商品列表,并將結(jié)果轉(zhuǎn)換為VO返回
    }
}

AO

AO(Action Object)
以上面的商品BO為例,一個(gè)商品BO周邊應(yīng)該還會(huì)有一些行為,比如獲取商品列表,根據(jù)關(guān)鍵字搜索商品,添加商品到購物車等等的行為,這每一個(gè)行為,其實(shí)都可以作為一個(gè)AO類來創(chuàng)建。

而實(shí)際上AO有時(shí)還會(huì)被理解成為Application Object,對(duì)于AO筆者了解的并不是特別多,如果后續(xù)有深入了解,會(huì)回來更新這篇博客

感謝你的觀看??!????

如果看完文章后你有所收獲,且非常有條件的話,請(qǐng)給我點(diǎn)個(gè)贊吧,謝謝!文章來源地址http://www.zghlxwxcb.cn/news/detail-427821.html

到了這里,關(guān)于簡(jiǎn)單易懂的理解java開發(fā)中的 DO、BO、DTO、VO、AO都是什么?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 對(duì) PO、BO、DTO、VO 的理解

    對(duì) PO、BO、DTO、VO 的理解

    PO【persistant object】 持久對(duì)象,對(duì)應(yīng)數(shù)據(jù)庫的表。 BO【persistant object】 業(yè)務(wù)對(duì)象,將業(yè)務(wù)邏輯封裝成一個(gè)對(duì)象。可以理解為 PO 的組合,例如:我們可以以教育經(jīng)歷、工作經(jīng)驗(yàn)、社會(huì)關(guān)系作為 PO,將這三者封裝成一個(gè)簡(jiǎn)歷(BO)。 DTO【Data Transfer Object】 數(shù)據(jù)傳輸對(duì)象,用在需要

    2023年04月13日
    瀏覽(30)
  • 后端開發(fā)基礎(chǔ)概念 Entity,DAO,DO,DTO,VO, Service,Controller

    Entity主要用于ORM(對(duì)象關(guān)系映射)框架中,如Hibernate、MyBatis等,以便將數(shù)據(jù)庫中的數(shù)據(jù)映射為對(duì)象,方便進(jìn)行業(yè)務(wù)操作。 Entity通常與數(shù)據(jù)庫表一一對(duì)應(yīng),代表 業(yè)務(wù)數(shù)據(jù) 的基本單元。 通常放在項(xiàng)目的model或entity包下。 ? DAO(數(shù)據(jù)訪問對(duì)象): DAO是連接業(yè)務(wù)邏輯和數(shù)據(jù)庫的橋

    2024年04月08日
    瀏覽(27)
  • PO、VO、DAO、BO、DTO、POJO區(qū)分

    DO(Data Object):此對(duì)象與數(shù)據(jù)庫表結(jié)構(gòu)一一對(duì)應(yīng),通過 DAO 層向上傳輸數(shù)據(jù)源對(duì)象。 DTO(Data Transfer Object):數(shù)據(jù)傳輸對(duì)象,Service 或 Manager 向外傳輸?shù)膶?duì)象。 BO(Business Object):業(yè)務(wù)對(duì)象,由 Service 層輸出的封裝業(yè)務(wù)邏輯的對(duì)象。 AO(ApplicationObject):應(yīng)用對(duì)象,在Web層與Service層之間抽象的

    2024年02月05日
    瀏覽(27)
  • springboot中entity層、dto層、vo層通俗理解三者的區(qū)別

    entity :這個(gè)類的屬性是跟數(shù)據(jù)庫字段一模一樣的(駝峰命名),當(dāng)我們使用MyBatis-Plus的時(shí)候經(jīng)常用得到。 dto :用于后端接收前端返回的數(shù)據(jù),一般是post請(qǐng)求,前端會(huì)給我們返回一個(gè)json對(duì)象,我們這個(gè)dto就用于接收這個(gè)json對(duì)象,dto的每個(gè)屬性名和json對(duì)象的key是對(duì)應(yīng)的。 v

    2024年02月10日
    瀏覽(19)
  • 控制系統(tǒng)中的AI、AO、DI、DO是什么意思——控制系統(tǒng)基礎(chǔ)知識(shí)

    ??控制系統(tǒng)中AI、AO、DI、DO是集散控制系統(tǒng)中模塊上常見的一些基本標(biāo)注,好處就是便于分清什么類型量的設(shè)備,方便前期的產(chǎn)品選型及后期的維修與保養(yǎng)。 ??同時(shí)將現(xiàn)場(chǎng)模擬量?jī)x表和開關(guān)量設(shè)備等進(jìn)行清晰分類,便于后期儀表和設(shè)備的弱電信號(hào)接線。 其實(shí)很簡(jiǎn)單,AI、

    2024年01月20日
    瀏覽(36)
  • VO和DTO有什么區(qū)別?

    ????????在Java開發(fā)中,VO和DTO都是用于數(shù)據(jù)傳輸?shù)膶?duì)象,但它們的含義和用途有所不同。 VO(Value Object)通常是用于表示業(yè)務(wù)領(lǐng)域中的一個(gè)值對(duì)象,它是一個(gè)純粹的數(shù)據(jù)對(duì)象,主要用于封裝從業(yè)務(wù)層傳遞到UI層的數(shù)據(jù),以便于UI層展示或者接收用戶輸入。VO通常不包含業(yè)務(wù)邏

    2024年02月10日
    瀏覽(21)
  • DTO,VO,PO的意義與他們之間的轉(zhuǎn)換

    DTO(Data Transfer Object):數(shù)據(jù)傳輸對(duì)象,這個(gè)概念來源于J2EE的設(shè)計(jì)模式,原來的目的是為了EJB的分布式應(yīng)用提供粗粒度的數(shù)據(jù)實(shí)體,以減少分布式調(diào)用的次數(shù),從而提高分布式調(diào)用的性能和降低網(wǎng)絡(luò)負(fù)載,但在這里,我泛指用于展示層與服務(wù)層之間的數(shù)據(jù)傳輸對(duì)象。再通俗一

    2024年02月11日
    瀏覽(21)
  • java中的DTO

    在Java中,DTO代表數(shù)據(jù)傳輸對(duì)象(Data Transfer Object)。DTO是一種設(shè)計(jì)模式,用于在應(yīng)用程序的不同層之間傳輸數(shù)據(jù)。DTO通常用于將數(shù)據(jù)從一個(gè)層(如持久化層)傳遞到另一個(gè)層(如視圖層)。 DTO的主要目的是封裝數(shù)據(jù), 將前端發(fā)送的數(shù)據(jù)封裝為一個(gè)java對(duì)象 ,使得數(shù)據(jù)可以在不

    2024年02月09日
    瀏覽(16)
  • springboot蒼穹外賣實(shí)戰(zhàn):一、環(huán)境搭建(nginx啟動(dòng)失敗解決方案+Entity、DTO、VO、POJO區(qū)別說明+nio.charset.Input length = 2報(bào)錯(cuò)解決)

    springboot蒼穹外賣實(shí)戰(zhàn):一、環(huán)境搭建(nginx啟動(dòng)失敗解決方案+Entity、DTO、VO、POJO區(qū)別說明+nio.charset.Input length = 2報(bào)錯(cuò)解決)

    在資料的day01中有個(gè)“前端運(yùn)行環(huán)境”的文件夾,將其中的\\\"nginx-1.20.2\\\"文件夾解壓到 非中文目錄 下,然后直接點(diǎn)擊文件夾中的nginx.exe(閃退不要緊)。 然后在瀏覽器中直接輸入localhost,如果出現(xiàn)以下頁面,即說明前端啟動(dòng)成功。 啟動(dòng)失敗解決方案 如果沒有,可能原因是80端

    2024年04月12日
    瀏覽(272)
  • Python中的抽象類(簡(jiǎn)單易懂版)

    Python中的抽象類(簡(jiǎn)單易懂版)

    如果大家學(xué)過java語言的話,那么一定對(duì)抽象類不陌生。同樣作為面向?qū)ο蟮恼Z言,Python也有抽象類。 1.1什么是抽象類? 如果說,類是對(duì)一堆對(duì)象共同內(nèi)容的抽取,那么抽象類就是對(duì)一堆類共同內(nèi)容的抽取,包括:屬性和方法。 1.2抽象類的特點(diǎn) (1)抽象類必須包含一個(gè)或多

    2024年02月09日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包