Java “什么是”呢;“原始接口方法”;在爪哇?
我正在读“有效的Java”,这是本书的一句话: 接口定义类型,可能提供一些默认方法,而骨架实现类在基本接口方法之上实现其余的非基本接口方法。扩展框架实现需要实现接口的大部分工作。这是模板方法模式 作者正在讨论一些抽象类,如Java “什么是”呢;“原始接口方法”;在爪哇?,java,Java,我正在读“有效的Java”,这是本书的一句话: 接口定义类型,可能提供一些默认方法,而骨架实现类在基本接口方法之上实现其余的非基本接口方法。扩展框架实现需要实现接口的大部分工作。这是模板方法模式 作者正在讨论一些抽象类,如AbstractCollection,AbstractSet,它们实现了一个接口并提供了一些基本的实现。但是,我不知道引用中提到的非基本接口方法和基本接口方法是什么。我知道Java中的“基元类型”,但什么是“基元方法”?在本文中,“基元方法”与基元类型没有任何关系——“基元”的
AbstractCollection
,AbstractSet
,它们实现了一个接口并提供了一些基本的实现。但是,我不知道引用中提到的非基本接口方法
和基本接口方法
是什么。我知道Java中的“基元类型”,但什么是“基元方法”?在本文中,“基元方法”与基元类型没有任何关系——“基元”的含义在这里是不同的。根据,原语方法执行的基本任务不依赖于任何其他方法来帮助完成其工作
基本方法是执行一项特定任务的方法,通常直接引用对象的字段。它不依赖于定义基元方法的类的任何(非基元)方法
这与依赖于调用其他方法来执行子任务的“组合方法”相反。原语方法似乎执行的任务不是或不应该被分解为由其他方法表示的更小的子任务
例如,您可能有一个有小时和分钟的Time
类。基本方法可以是每个小时和分钟字段的单独设置器,例如setHour
和setMinutes
。组合方法,例如setTime
,可以调用setHour
和setMinutes
来完成其工作
模板方法模式涉及创建一个组合方法,该方法定义要完成的任务的工作流的顺序和结构,并调用其他可能是基本的方法。随着Java 8中
默认方法的出现,这些方法有可能出现在接口中。“primitive”指的是不直接涉及算法或行为的东西,但需要实现才能使其他功能正常工作。在AbstractList
的情况下,有get(int)
和set(i,E)
——在这两个基础上构建了List
的所有其他功能,包括复杂的indexOf
,addAll
,equals
等(这些方法在框架实现中是“模板化”的,为模式命名).我还得再读一遍书中的那一节,但既然布洛赫说的是Collection
类,他可能指的是泛型不能接受基元类型这一事实。只有类类型。