¿Cuál es el beneficio de la ampliación de una interfaz VEZ que ya se prolonga por su padre?

Jenix:

Por ejemplo, que tengo debajo de código:

interface IAAA {
    void aaa();
}

interface IBBB extends IAAA {
    void bbb();
}

class MyClass implements IAAA, IBBB {
    public void bbb() { }
    public void aaa() { }
}

¿Hay algún beneficio de implementar IAAAen MyClass? Como se puede ver, IAAAque ya se prolonga por IBBBy MyClassestá llevando a cabo tanto IAAAy IBBB. Parece eliminación IAAAdel MyClassno afecta a nada.

La razón por la que estoy haciendo esta pregunta tonta es, veo este tipo de patrones muy a menudo en AndroidProyecto Open Source y, a veces incluso en el estándar Java APItales como ArrayList.

Un ejemplo que quiero hablar es SpannableStringBuilder.

Spannedinterfaz extiende CharSequenceinterfaz.

Spannableinterfaz extiende Spannedinterfaz.

Editableinterfaz se extiende tanto CharSequencey Spannablede interfaz.

SpannableStringBuilderimplementa la clase CharSequence, Spannable, Editablenuevo en la interfaz.

Realmente no lo entiendo. ¿Cuál es el punto de hacer de esta manera? ¿Por qué molestarse?

Gabe Séchan:

No hay ninguna razón técnica. Puede que sea un poco más fácil en necesidad de mantenimiento Si la barra se extiende Foo y que desea encontrar todas las clases que implementan Foo, sólo tiene que buscar Foo y no foo y bar.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=223987&siteId=1
Recomendado
Clasificación