J'ai remarqué que le code suivant modèle pendant la navigation par le biais de certaines sources de mon projet de la 3e partie des bibliothèques:
public interface MyInterface {
public static class MyClass1 implements MyInterface { ... }
public static class MyClass2 implements MyInterface { ... }
public static class MyClass3 implements MyInterface { ... }
}
Ou bien celle-ci:
public class MyBaseClass {
public static class MyClass1 extends MyBaseClass { ... }
public static class MyClass2 extends MyBaseClass { ... }
public static class MyClass3 extends MyBaseClass { ... }
}
Exemples concrets:
- SwingX:
org.jdesktop.swingx.decorator.HighlightPredicate
(Source) - Substance:
org.pushingpixels.substance.api.renderers.SubstanceDefaultTableCellRenderer
(Source)
Quel est l'avantage d'avoir une structure de code de ce genre?
Ma première pensée a été "agrégation", mais la même chose pourrait être réalisé à l'aide de la plaine de vieux paquets. Alors, quand/pourquoi est-il mieux d'utiliser les classes internes au lieu d'un paquet?