1. 从功能堆砌到业务语义化:对象命名的艺术与科学
在十多年的编码生涯中,我见过太多因为糟糕命名而陷入维护噩梦的项目。最典型的场景就是新接手一个系统时,面对满屏的XXXManager、XXXHelper类,需要花费数周时间才能理清各个模块的真实职责。这种命名方式暴露的不仅是审美问题,更是对业务理解的浅薄。
好的命名应该像精确的化学方程式,每个符号都承载着明确的含义。当我们用Chef替代FoodMaker时,改变的不仅是类名,更是对整个餐饮领域专业分工的尊重。这种转变带来的直接收益是:新成员能在半小时内看懂核心业务流程,而不是被各种Service和Util绕得晕头转向。
关键认知:类名后缀暴露设计缺陷。当你发现需要频繁使用
Manager、Service等泛化后缀时,往往意味着业务边界划分出现了问题。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 命名陷阱解析与重构策略
2.1 执行器模式的反模式
以-er/-or结尾的类名(如Parser、Validator)本质上反映了过程式编程的思维惯性。这种命名方式将对象降级为"执行某个动作的工具",忽视了其在业务场景中的主体地位。在电商系统中,我们经常看到这样的代码:
java复制class OrderProcessor {
public void process(Order order) {
validate(order);
calculate(order);
persist(order);
}
}
重构为领域模型后:
java复制class Order {
private Status status;
public void place() {
this.validate();
this.calculateTotal();
this.status = Status.CONFIRMED;
}
}
改造后的代码中,Order不再是被处理的对象,而是具备自主行为能力的业务实体。这种转变带来三个显著优势:
- 业务逻辑内聚性增强,修改验证规则只需关注
Order类内部 - 调用方代码更符合业务语言,直接表达
