1. 面向对象编程核心三要素解析
面向对象编程(OOP)是现代软件开发的基础范式,其三大核心特征构成了代码组织的DNA。我在十多年的全栈开发实践中发现,90%的架构设计问题都源于对这三个特性的理解偏差。封装、继承、多态不是简单的概念背诵,而是需要内化的工程思维。
1.1 封装:代码的自我保护机制
封装就像给代码穿上智能防护服。在Java中,我常用以下模式实现严格封装:
java复制public class BankAccount {
private double balance; // 关键字段私有化
// 通过方法控制访问
public void deposit(double amount) {
if(amount > 0) {
balance += amount;
} else {
throw new IllegalArgumentException("存款金额必须为正数");
}
}
// 只读访问
public double getBalance() {
return balance;
}
}
关键技巧:字段永远私有,通过方法暴露必要操作。验证逻辑要放在setter内部,而不是依赖外部调用者。
实际工程中,我见过太多因为直接暴露字段导致的灾难:
- 某金融系统因直接操作balance字段导致负数余额
- 电商平台因绕过库存校验引发超卖
- 医疗系统因未封装患者年龄字段出现逻辑混乱
1.2 继承:代码复用的双刃剑
继承体系设计是架构师的核心能力。这个汽车类继承案例值得细品:
java复制class Vehicle {
protected String licensePlate;
public void startEngine() {
System.out.println("引擎启动");
}
}
class ElectricCar extends Vehicle {
private int batteryLevel;
@Override
public void startEngine() {
System.out.println("电机激活");
checkBattery();
}
private void checkBattery() {
if(batteryLevel < 20) {
throw new RuntimeException("电量不足");
}
}
}
常见陷阱包括:
- 过度继承导致的"香蕉猴子丛林问题"(一个类为了香蕉却得到了整片丛林)
- 脆弱的基类问题(父类修改影
