Composición, ¿no entiendo esto?

Consulte el siguiente enlace:

http: //www.javaworld.com/javaworld/jw-11-1998/jw-11-techniques.html? page = 2

El enfoque de composición para la reutilización de código proporciona una encapsulación más fuerte que la herencia, porque un cambio a una clase de back-end no necesita romper ningún código que se base solo en la clase de front-end. Por ejemplo,cambiar el tipo de retorno del método pelar () de Fruit del ejemplo anterior no fuerza un cambio en la interfaz de Apple y, por lo tanto, no necesita romper el código de Example2.

Seguramente si cambia el tipo de retorno depeel() (ver código abajo) esto significagetPeelCount() no podría devolver unint ¿nunca más? ¿No tendría que cambiar la interfaz u obtener un error del compilador de lo contrario?

class Fruit {

    // Return int number of pieces of peel that
    // resulted from the peeling activity.
    public int peel() {

        System.out.println("Peeling is appealing.");
        return 1;
    }
}

class Apple {

    private Fruit fruit = new Fruit();

    public int peel() {
        return fruit.peel();
    }
}

class Example2 {

    public static void main(String[] args) {

        Apple apple = new Apple();
        int pieces = apple.peel();
    }
}

Respuestas a la pregunta(10)

Su respuesta a la pregunta