遵循单一职责原则:设计模式的核心实践
需积分: 9 115 浏览量
更新于2024-07-26
收藏 203KB DOC 举报
设计模式六大数据抽象的核心原则之一是单一职责原则(Single Responsibility Principle,SRP),这一原则强调的是每个类或模块应只负责一项特定的职责。SRP的目的是确保类的内部结构清晰,当需求变化时,仅需修改与该职责相关部分,从而降低代码间的耦合性,提高代码的可维护性和稳定性。
在上述示例中,类`Animal`被赋予了两个职责:处理不同动物的呼吸行为和接受动物种类作为参数。这违背了单一职责原则,因为一个类不应同时处理多个逻辑。如果`Animal`类仅关注呼吸行为,而不涉及动物种类,那么当需要修改与呼吸相关的代码时,不会影响到动物种类的逻辑。
为遵循SRP,可以将`Animal`拆分为两个类:`Breather`和`AnimalSpecies`。`Breather`负责通用的呼吸方法,而`AnimalSpecies`则包含特定动物的信息,如`Cattle`, `Sheep`, `Pig`等子类,它们继承自`Breather`并实现各自特有的行为。例如:
```java
class Breather {
public void breathe() {
System.out.println(getSpecies() + "呼吸空气");
}
protected abstract String getSpecies();
}
class Cattle extends Breather {
@Override
protected String getSpecies() {
return "牛";
}
}
class Sheep extends Breather {
@Override
protected String getSpecies() {
return "羊";
}
}
class Pig extends Breather {
@Override
protected String getSpecies() {
return "猪";
}
}
public class Client {
public static void main(String[] args) {
Cattle cattle = new Cattle();
Sheep sheep = new Sheep();
Pig pig = new Pig();
cattle.breathe(); // 牛呼吸空气
sheep.breathe(); // 羊呼吸空气
pig.breathe(); // 猪呼吸空气
}
}
```
在这个重构后的版本中,每个类都专注于自己的职责,使得代码更易于理解和维护。当需要对呼吸行为进行修改时,只需修改`Breather`类,而不会影响到`AnimalSpecies`类。这就是单一职责原则在实际编程中的应用,尽管它看似简单,但在大型项目和长期维护中,其价值不言而喻。
2023-04-29 上传
2023-10-28 上传
2023-04-29 上传
2023-09-14 上传
2024-03-08 上传
2023-04-28 上传
2023-10-20 上传
cr330326
- 粉丝: 19
- 资源: 44
最新资源
- 天池大数据比赛:伪造人脸图像检测技术
- ADS1118数据手册中英文版合集
- Laravel 4/5包增强Eloquent模型本地化功能
- UCOSII 2.91版成功移植至STM8L平台
- 蓝色细线风格的PPT鱼骨图设计
- 基于Python的抖音舆情数据可视化分析系统
- C语言双人版游戏设计:别踩白块儿
- 创新色彩搭配的PPT鱼骨图设计展示
- SPICE公共代码库:综合资源管理
- 大气蓝灰配色PPT鱼骨图设计技巧
- 绿色风格四原因分析PPT鱼骨图设计
- 恺撒密码:古老而经典的替换加密技术解析
- C语言超市管理系统课程设计详细解析
- 深入分析:黑色因素的PPT鱼骨图应用
- 创新彩色圆点PPT鱼骨图制作与分析
- C语言课程设计:吃逗游戏源码分享