写代码的时候,类(class)是我们组织逻辑的基本单元。很多人一开始学编程,觉得只要能跑就行,结果写着写着就乱了套。比如我朋友小李,刚开始做后台管理,把用户信息、权限校验、数据操作全塞在一个类里,后来改个名字都得翻三四个文件。
命名要清晰,别图省事
类名最好能一眼看出它是干啥的。比如用 UserManager 就比 HandleUser 更明确,前者是管理用户的类,后者像函数。避免用缩写,像 DBUtil 不如写成 DatabaseConnectionHelper,虽然长点,但别人一看就知道用途。
单一职责原则不是摆设
一个类只负责一件事。比如处理订单的类,就别顺手把发邮件也做了。可以拆出一个专门发通知的类。这样以后换短信推送,只需要改通知类,不影响订单逻辑。
属性和方法别乱放
类里的变量尽量私有化,Python 里用下划线开头表示内部使用,Java 或 C# 用 private 修饰。外部想访问,提供 getter/setter 方法更安全。比如用户密码这种敏感信息,不能直接暴露。
class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setPassword(String rawPassword) {
this.password = hash(rawPassword); // 存之前先加密
}
}
构造函数别太重
有些人在构造函数里做一堆事,连接数据库、读配置文件、初始化缓存……这会让测试变得困难。构造应该轻量,真正要加载的数据,可以用单独的方法来启动。
继承要谨慎,别为了复用硬套
看到两个类有点像,就想着搞个父类?小心掉坑。比如 Dog 和 Bird 都会动,但要不要抽象个 Moveable 类?不如用接口或组合。过度继承会让结构复杂,改一处牵连一片。
留好扩展空间
写类的时候想想以后会不会加功能。比如现在只支持微信登录,但保不齐下周老板说要接支付宝。提前设计好认证接口,后面加新方式就方便多了。
interface AuthService {
boolean login(String token);
}
class WeChatAuthService implements AuthService {
public boolean login(String token) {
// 微信登录逻辑
}
}
这些细节看着琐碎,但在团队协作中特别重要。谁也不想接手一个“意大利面条式”的代码库。花点时间把类定义理清楚,后面走得才稳。