Java中的“原始接口方法”是什么?

时间:2019-05-23 15:44:33

标签: java

我正在阅读“有效的Java”,这是这本书的引文:

  

接口定义类型,可能提供一些默认方法,而骨架实现类在原始接口方法之上实现其余的非原始接口方法。扩展骨架实现可以使大部分工作脱离实现接口。这是 Template Method 模式。

作者正在谈论一些抽象类,例如if (LOG.isEnabledFor)...AbstractCollection等,它们实现了一个接口并提供了一些基本的实现。但是,我不知道引用中提到的AbstractSetnon-primitive interface methods是什么。我知道Java中的“原始类型”,但是什么是“原始方法”?

1 个答案:

答案 0 :(得分:4)

在这种情况下,“原始方法”与原始类型没有任何关系-此处“原始”的含义不同。根据{{​​3}},原始方法执行的基本任务不依赖其他任何方法来完成其工作。

  

原始方法是一种执行一项特定任务的方法,通常通过直接引用对象的字段来完成。它不依赖于定义原始方法的类的任何(非原始)方法。

这与“组合方法”相对,后者依赖于调用其他方法来执行子任务。看来,原始方法执行的任务没有或不应分解为其他方法代表的较小子任务。

例如,您可能有一个Time类,其中包含小时和分钟。原始方法可以是小时和分钟字段中每个字段的设置方法,例如setHoursetMinutes。一种组合方法,例如setTime,可以调用setHoursetMinutes来完成其工作。

模板方法模式涉及创建一个组合的方法,该方法定义要完成的任务的工作流程的顺序和结构,并调用其他可能是原始方法的方法。随着Java 8中default方法的出现,这些方法有可能出现在接口中。