7大设计原则的深入理解资料,以及示例代码
时间: 2024-12-19 15:17:09 浏览: 3
"七种设计原则"通常指的是 SOLID 设计原则,这是面向对象编程中的最佳实践,用于创建易于维护、高度模块化和可扩展的设计。以下是这些原则的简要概述,以及一些资源链接:
1. 单一职责原则(SRP): 每个类应该有一个明确的目的。例如,`Employee` 类只负责存储员工信息,处理与工资计算相关的逻辑应该放在单独的 `SalaryCalculator` 类里。
```java
class Employee {
private String name;
// 其他属性...
}
```
2. 开闭原则(OCP): 系统应能扩展而不会修改现有的代码。比如,通过继承添加新功能而不是直接修改。
```java
abstract class PaymentSystem {
void calculatePayment(Employee employee);
}
class SalaryPaymentSystem extends PaymentSystem {
@Override
void calculatePayment(Employee employee) {
// 计算基本薪资
}
}
```
3. Liskov替换原则(LRP): 子类可以替换其父类而不影响程序的行为。使用接口或抽象类保证了灵活性。
```java
interface DiscountStrategy {
double applyDiscount(double price);
}
class NoDiscount implements DiscountStrategy {
public double applyDiscount(double price) {
return price;
}
}
class PercentageDiscount implements DiscountStrategy {
// 实现折扣算法...
}
```
4. 里氏替换原则(RIP): 当使用基类引用指向子类实例时,行为保持一致。
5. 接口隔离原则(IIP): 尽量减少接口提供的方法,避免不必要的依赖。
6. 依赖倒置原则(DIP): 高层模块不应该依赖于低层模块,两者都应该依赖于抽象。例如,框架依赖于接口而非具体实现。
```java
interface DatabaseConnection {
void saveData();
}
// 两个具体的数据库实现
class MySQLConnection implements DatabaseConnection {
//...
}
class MongoDBConnection implements DatabaseConnection {
//...
}
```
7. 组合优于继承(CBO): 优先使用组合来实现复用和扩展,而不是继承。
参考资源:
- [SOLID原则详解](https://refactoring.guru/design-principles/solid)
- [GitHub上的SOLID代码示例](https://github.com/search?q=solid+example)
阅读全文