一、看着這圖就比較復雜了,下面是我的簡單看法,因為每個公司都有自己的規范或者要求,盡量多問問同事。
PO,BO,DO,POJO,PO等比較容易理解。如:
PO 持久對象,數據;
BO 業務對象,封裝對象、復雜對象 ,里面可能包含多個類;
二、詳細講解
1.VO(View Object),視圖對象,用於展示層,它的作用是把某個指定頁面(或組件)的所有數據封裝起來。
2.DTO(Data Transfer Object),數據傳輸對象,這個概念來源於J2EE的設計模式,原來的目的是為了EJB的分布式應用提供粗粒度的數據實體,以減少分布式調用的次數,從而提高分布式調用的性能和降低網絡負載,但在這里,我泛指用於展示層與服務層之間的數據傳輸對象。
3.DO(Domain Object),領域對象,就是從現實世界中抽象出來的有形或無形的業務實體。
4.PO(PersistentObject),持久化對象,它跟持久層(通常是關系型數據庫)的數據結構形成一一對應的映射關系,如果持久層是關系型數據庫,那么,數據表中的每個字段(或若干個)就對應PO的一個(或若干個)屬性。
5.舉例:
后端返回個前端的對象,可以 ***VO.java
mybatis生成的dao表實體對象,可以 ****PO.java
一般是 PO 轉換 DO 然后 轉換 DTO提供服務供外部調用
主要是DTO和VO。在我開發的體驗俗話說
DTO:一般是用來封裝前端發送過來的數據的。(可能使用@Validated+BindingResult來綁定)
@RequestMapping(value = "/index/refreshImg", method = RequestMethod.POST)
@ResponseBody
@RequestLog(description = "刷新商品圖片")
public returnResponse refreshOrderImg(@Validated @RequestBody OrderImgRefreshDto dto, BindingResult result){