25、警惕类继承:代码模块化的思考

警惕类继承:代码模块化的思考

在软件开发中,代码模块化是提高代码可维护性和可扩展性的关键。类继承和组合是实现代码模块化的两种重要方式,但类继承存在一些潜在问题,需要我们谨慎使用。

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值