最新实战案例锦集:《Spring Boot3实战案例合集》持续更新,每天至少更新一篇文章,订阅后将赠送文章最后展示的所有MD文档(学习笔记)。
环境:SpringBoot3.2.5
1. 简介
在软件开发中,面向对象设计对于创建易于更改、扩展和再次使用的代码非常重要
SOLID原则是面向对象编程和软件开发中的5个设计原则,旨在创建更易于维护、更灵活和可扩展的软件。它们由Robert C. Martin提出,被广泛用作设计简洁高效代码的指导原则。而SOLID中的每个字母都代表以下原则之一:
Single Responsibility Principle (SRP)单一职责原则
Open/Closed Principle (OCP)开闭原则
Liskov's Substitution Principle (LSP)里氏替换原则
Interface Segregation Principle (ISP)接口隔离原则
Dependency Inversion Principle (DIP)依赖倒置原则
在接下来将详细介绍在SpringBoot程序中如何正确的应用上面5大原则。
2. 实战案例
2.1 单一职责原则SRP
一个类应该有一个,而且只有一个改变的理由。单一职责原则有2个关键原则:
你的类或方法应该只有一个改变的理由
你的类或方法应该只有一个职责
先来看个不正确的用法:
@RestController
@RequestMapping("/orders")
public class OrderController {
private final OrderService orderService;
public OrderController(OrderService orderService) {
this.orderService= orderService;
}
@PostMapping("")
public ResponseEntity<Void> createOrderAndSendSms(@RequestBody OrderVO orderVO) {
this.orderService.createOrder(orderVO) ;
this.orderService.sendSms(String.format("订单号【%s】创建成功", orderVO.getSno())) ;
return ResponseEntity.status(HttpStatus.OK.value()).build() ;
}
}
OrderService类干了2件事,创建订单&发送短信
@Service
public class OrderService {
private final OrderRepository orderRepository ;
public OrderService(OrderRepository orderRepository) {
this.orderRepository = orderRepository ;
}
@Transactional
public void createOrder(OrderVO orderVO) {
// TODO
}
public void sendSms(String message) {
// TODO
}
}
这里的OrderService类不具备单一职责原则,它不仅负责订单的管理,还进行短信的发送,这违反了单一职责原则。
在创建代码时,需要避免将太多任务放在一个地方——无论是类还是方法。如下图所示: