警惕类继承:代码模块化的思考
在软件开发中,代码模块化是提高代码可维护性和可扩展性的关键。类继承和组合是实现代码模块化的两种重要方式,但类继承存在一些潜在问题,需要我们谨慎使用。
1. 类继承的问题
在某些情况下,类继承是合适的,比如当两个事物存在真正的“is-a”关系时,像汽车是一种交通工具。然而,类继承也有诸多弊端,在编写一个类继承另一个类的代码之前,需要仔细思考。
为了更好地说明类继承的问题,我们考虑一个具体场景:编写一个类,用于从包含逗号分隔值的文件中逐个读取整数。这个问题可以分解为以下子问题:
- 从文件中读取数据。
- 将文件中逗号分隔的内容拆分为单个字符串。
- 将每个字符串解析为整数。
我们发现,前两个子问题已经由现有的 CsvFileHandler 类解决。这个类实现了 FileValueReader 和 FileValueWriter 两个接口,但我们只需要 FileValueReader 接口的功能。
以下是相关接口和类的定义:
interface FileValueReader {
String? getNextValue();
void close();
}
interface FileValueWriter {
void writeValue(String value);
void close();
}
/**
* Utility for reading and wr
超级会员免费看
订阅专栏 解锁全文
2832

被折叠的 条评论
为什么被折叠?



