外观
java
495字约2分钟
2025-06-20
开发范例
实体
定义
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ExtractorDTO {
private String startTime;
private String endTime;
private String runTime;
}转换
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
@Mapper
public interface UserMapper {
UserMapper INSTANCE = Mappers.getMapper(UserMapper.class);
@Mapping(source = "id", target = "userId")
@Mapping(source = "name", target = "fullName")
@Mapping(source = "email", target = "emailAddress")
UserDTO toDTO(UserEntity userEntity);
}命名
接口命名
使用形容词或名词短语来描述能力或角色。 常见的后缀有 -able, -ible 或 er。 示例:Readable, Writable, Runner, Processor。
实现类命名
使用具体的名词来描述实际的对象或实体。 如果是默认实现,可以加上 Default 前缀。 如果是具体实现,可以根据功能添加描述性前缀或后缀。 示例:DefaultReader, FileWriter, ThreadRunner, ImageProcessor。
Service
意图: 提供一个完整的业务功能,通常是面向更高层的抽象。 关注业务逻辑,通常集成多个操作或功能。 语义: 强调服务化,与系统其他部分协作。 典型场景: 业务服务(如 UserService) 功能性服务(如 EmailService) 微服务架构中的模块化服务 示例: OrderService: 负责订单的创建、更新和查询。 NotificationService: 提供通知的发送和管理功能。
Processor
意图: 专注于数据的加工、转换或处理,往往是流式或批量操作。 强调对输入数据的处理并生成输出数据,通常是更复杂的逻辑。 语义: 强调执行一系列处理流程。 典型场景: 数据处理(如 DataProcessor) 消息处理(如 MessageProcessor) 流式或批量任务处理(如日志、文件、数据流处理)
Handler
Handler 意图: 用于处理特定的事件或请求,通常是事件驱动的。 关注单一职责,执行简单的任务。 语义: 强调响应某个触发条件(事件、请求等)。 典型场景: 事件处理(如 EventHandler) 请求处理(如 RequestHandler) 任务处理中的某一环节(如 ErrorHandler) 示例: LoginHandler: 处理登录请求。 ClickEventHandler: 响应用户点击事件。
