109 lines
3.1 KiB
Markdown
109 lines
3.1 KiB
Markdown
# Java 命名规范
|
||
|
||
## 规则
|
||
|
||
1. **包名(Package)**:
|
||
- 全部小写,使用反斜杠分隔层级。
|
||
- 格式:`com.公司名.项目名.模块名`
|
||
- 示例:`com.example.order.service`
|
||
|
||
2. **类名(Class)**:
|
||
- 使用大驼峰命名法(UpperCamelCase)。
|
||
- 名词或名词短语。
|
||
- 示例:`UserService`、`OrderController`、`DatabaseConfig`
|
||
|
||
3. **接口名(Interface)**:
|
||
- 使用大驼峰命名法(UpperCamelCase)。
|
||
- 通常以 `Interface` 结尾(可选,根据团队规范)。
|
||
- 示例:`PaymentServiceInterface` 或 `PaymentService`
|
||
|
||
4. **抽象类名(Abstract Class)**:
|
||
- 使用大驼峰命名法(UpperCamelCase)。
|
||
- 以 `Abstract` 开头。
|
||
- 示例:`AbstractBaseController`、`AbstractEventHandler`
|
||
|
||
5. **枚举名(Enum)**:
|
||
- 使用大驼峰命名法(UpperCamelCase)。
|
||
- 示例:`OrderStatus`、`UserRole`
|
||
|
||
6. **变量名(Variable)**:
|
||
- 使用小驼峰命名法(camelCase)。
|
||
- 见名知意,避免缩写(如 `userList` 而非 `ul`)。
|
||
- 示例:`userName`、`orderList`、`isActive`
|
||
|
||
7. **常量名(Constant)**:
|
||
- 全部大写,单词间用下划线分隔。
|
||
- 使用 `static final` 修饰。
|
||
- 示例:`MAX_RETRY_COUNT`、`DEFAULT_PAGE_SIZE`
|
||
|
||
8. **方法名(Method)**:
|
||
- 使用小驼峰命名法(camelCase)。
|
||
- 动词或动词短语开头。
|
||
- 示例:`getUserById`、`createOrder`、`isValid`
|
||
|
||
9. **布尔变量与方法**:
|
||
- 布尔变量以 `is`、`has`、`can`、`should` 开头。
|
||
- 示例:`isEnabled`、`hasPermission`、`canDelete`
|
||
- Getter 方法:布尔类型使用 `is` 前缀(如 `isEnabled()`),其他类型使用 `get` 前缀。
|
||
|
||
10. **异常类名(Exception)**:
|
||
- 以 `Exception` 结尾。
|
||
- 示例:`UserNotFoundException`、`OrderProcessingException`
|
||
|
||
11. **测试类名(Test Class)**:
|
||
- 以 `Test` 结尾或开头。
|
||
- 示例:`UserServiceTest`、`TestOrderService`
|
||
|
||
12. **集合变量名**:
|
||
- 使用复数形式或添加 `List`、`Map`、`Set` 后缀。
|
||
- 示例:`users`、`userList`、`orderMap`
|
||
|
||
## 示例
|
||
|
||
### 正确示例
|
||
|
||
```java
|
||
package com.example.order.service;
|
||
|
||
public class OrderService implements OrderServiceInterface {
|
||
|
||
private static final int MAX_RETRY_COUNT = 3;
|
||
private static final int DEFAULT_PAGE_SIZE = 10;
|
||
|
||
private final OrderRepository orderRepository;
|
||
|
||
public List<Order> getAllOrders() {
|
||
return orderRepository.findAll();
|
||
}
|
||
|
||
public Optional<Order> getOrderById(Long id) {
|
||
return orderRepository.findById(id);
|
||
}
|
||
|
||
public boolean isValidOrder(Order order) {
|
||
return order != null && order.getAmount() > 0;
|
||
}
|
||
}
|
||
```
|
||
|
||
### 错误示例
|
||
|
||
```java
|
||
package com.example.order; // 包名缺少层级
|
||
|
||
public class orderservice { // 类名未使用大驼峰
|
||
|
||
private int maxretrycount = 3; // 常量未大写
|
||
|
||
public List<Order> getorder() { // 方法名未使用小驼峰
|
||
return orderRepository.findAll();
|
||
}
|
||
}
|
||
```
|
||
|
||
## 适用范围
|
||
|
||
- 所有 Java 项目代码
|
||
- Spring Boot 后端服务
|
||
- Java 单元测试
|