前面的示例展示了标准方法的使用,但不是在实际场景中。
Series 接口被广泛使用,许多程序都依赖于它。
我们发现 Series 的几个实现添加了一个方法,该方法返回一个包含该系列的下 n 个元素的数组。
决定使用 getNextArray(int n) 方法改进 Series 接口,其中 n 指定要检索的元素数量。
在标准方法之前,添加此方法会破坏未定义它的现有代码。
使用标准方法,可以将新方法添加到Series接口中,而不会导致现有代码出现问题。
在某些情况下,如果无法提供适用于所有情况的实现,添加到接口的标准方法会报告错误。
这些默认方法定义可选代码。
在某些情况下,可以定义默认方法以在任何情况下工作。
getNextArray() 方法是一个示例,因为它可以使用 Series 接口已经需要的 getNext() 方法来实现。
可以使用标准方法 getNextArray().
标准 getNextArray() 方法是使用 getNext() 方法实现的,该方法已存在于原始 Series 规范中。
任何实现 Series 的类都可以使用 getNextArray(),而无需重写该方法。
添加 getNextArray() 不会使现有代码失效。
如有必要,类可以提供自己的 getNextArray() 实现。
标准方法的优点:
允许接口发展而不会使现有代码失效。
提供可选功能,无需占位符实现。
对于 getNextArray(),如果 Series 实现不需要该方法,则不需要提供占位符实现,从而使代码更清晰。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3