Estoy siguiendo el spring tutorial.¿Mala práctica en este tutorial de primavera?
En la sección de una interfaz se crea ProductManager
"3.2 Añadir algunas clases de lógica de negocio.":
package springapp.service;
import java.io.Serializable;
import java.util.List;
import springapp.domain.Product;
public interface ProductManager extends Serializable{
public void increasePrice(int percentage);
public List<Product> getProducts();
}
A continuación, se crea una clase SimpleProductManager
aplicación:
package springapp.service;
import java.util.List;
import springapp.domain.Product;
public class SimpleProductManager implements ProductManager {
public List<Product> getProducts() {
throw new UnsupportedOperationException();
}
public void increasePrice(int percentage) {
throw new UnsupportedOperationException();
}
public void setProducts(List<Product> products) {
throw new UnsupportedOperationException();
}
}
La clase de implementación añade un extra método setProducts()
. En caso de que la interfaz ProductManager
no tenga también un método setProducts
para permitir clases que usan setProducts
para instanciar SimpleProductManager
polimórficamente. Actualmente esto no es posible -
ProductManager p = new SimpleProductManager();
p.setProducts();