Estoy leyendo "Effective Java", que aquí hay una cita de este libro:
La interfaz define el tipo, quizá proporcionar algunos métodos por defecto, mientras que los implementos clase de implementación esqueléticos los restantes métodos de interfaz no primitivos encima de los métodos de interfaz primitivas. La extensión de una implementación esquelética lleva la mayor parte de los trabajos de implementación de una interfaz. Este es el método de la plantilla patrón.
El autor está hablando de algunas clases abstractas como AbstractCollection
, AbstractSet
, etc., que implementan una interfaz y proporcionan algunas implementaciones básicas. Sin embargo, yo no sé qué non-primitive interface methods
y primitive interface methods
se menciona en la cita son. "Conozco tipos primitivos" en Java, pero lo que es "métodos primitivos"?
En este contexto, un "método primitivo" no tiene nada que ver con los tipos primitivos - el significado de "primitivo" es diferente aquí. De acuerdo a "Propiedades del método en Java" (p. 3) , un primitivo método realiza una tarea básica que no dependen de ningún otro método para ayudar a hacer su trabajo.
Un método primitivo es un método que lleva a cabo una tarea específica, generalmente por referirse directamente a los campos del objeto. No se basa en alguna (no primitivos) los métodos de la clase que define el método primitivo.
Esto se opone a un "método integrado" que se basa en llamar a otros métodos para llevar a cabo tareas parciales. Parece que realiza un método primitivo tareas que no son o no se debe dividirse en subtareas más pequeñas representados por otros métodos.
A modo de ejemplo, es posible tener una Time
clase que tiene de horas y minutos. Métodos primitivos pueden ser emisores individuales para cada uno de los campos de hora y minutos, por ejemplo setHour
y setMinutes
. Un método compuesto, por ejemplo setTime
, puede llamar setHour
y setMinutes
para hacer su trabajo.
El patrón método de la plantilla implica la creación de un método integrado que define el orden y la estructura de un flujo de trabajo de las tareas a realizar, llamar a otros métodos que pueden ser primitivo. Con el advenimiento de default
métodos en Java 8, es posible que estos métodos sean en las interfaces.