From e4acc2d40941c0942b9251efa6c7c20d0f4cf4a1 Mon Sep 17 00:00:00 2001 From: oyo Date: Wed, 25 Jun 2025 16:40:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20llms-full.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- llms-full.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llms-full.txt b/llms-full.txt index 3ad3efb..77abaa1 100644 --- a/llms-full.txt +++ b/llms-full.txt @@ -284,7 +284,7 @@ DateTime endTime; //会议结束时间 #### **2.7 视图对象 (VO)** - **定义与用途:** 在TOCO中,VO表达某个BaseDTO(如果用户指明派生源,也可使用其他DTO)为派生源,通过外键关系不断关联多个BaseDTO的数据结构。VO用于在视图层与前端之间进行数据传输,往往被当做HTTP API的返回值、或读方案的返回值使用,由服务端返回至前端。注意VO不能作为RPC的返回值。 - **关键配置:** 名称(以Vo结尾)、根Entity、派生源、字段列表。VO中的字段分为三种:a.继承DTO的字段,如果DTO中的字段为基础类型或EO、Enum,则VO中的继承字段和和DTO的字段类型一样,如果DTO中的字段为DTO或List类型,则继承字段为字段对应的DTO类型派生出的VO或List类型;b.扩展字段,含正向替换和反向注入字段,类型为VO或List;c.自定义字段,类型为基本类型或VO类型。VO中的字段来源于DTO,可以根据页面需要将无用字段进行裁剪,可以根据外键关系扩展其他BaseDto(详见**字段扩展方式**)。如果在派生源中没有合适字段,且明确无法通过外键扩展外部BaseDto的情况下,可增加对应的自定义字段 -- **与DTO的区别 (在TOCO语境下): **DTO用于服务层传输,通常作为RPC的返回值,与数据模型更近,复用性较强;VO用于视图层传输,通常作为API的返回值,与UI展示更为接近,复用性较弱。 +- **与DTO的区别 (在TOCO语境下): **DTO用于服务层传输,通常作为RPC的返回值,与数据模型更近,复用性较强;VO用于视图层传输,通常作为API的返回值,与UI展示更为接近,可裁剪掉不需要的DTO中的冗余字段,复用性较弱。 - **如何创建/生成:** VO通常由某个BaseDTO以及外键关系为基础派生,也可以直接创建和DTO无关、内部全为自定义字段的VO(尽量少用,只为应对某些特殊页面,需要组装一组完全无关的返回数据的场景)。 - **根VO和子VO:**TOCO中的VO分为两种:1.根VO,指最外层的VO结构,需要经由TOCO创建,有uuid作为唯一标识,根VO可被其他根VO或子VO引用;2.子VO,某个根VO的内部嵌套VO,通过外键关系关联BaseDTO之后由TOCO自动创建,只附属于某个根VO,只能被这一个根VO引用,且没有uuid。所以在TOCO中,我们需要描述VO要的字段、扩展关系,并通过**创建根VO**的行为使TOCO**自动创建**其子VO,或引用其他根VO,即可完成一个复杂嵌套VO的创建过程,无需单独创建子VO。 - **字段扩展方式:**同DTO的字段扩展方式,可以通过任意**一个**派生源BaseDTO,即可经过外键扩展成为复杂嵌套VO。只要存在外键关系且满足以下条件即可扩展:对于正向替换:当前实体存在指向其他实体的外键字段;对于反向注入:其他实体存在指向当前实体的外键字段。