Allora facciamo una cosa levati dalla testa per il momento JNI.
Supponi di avere 12 classi java con relativi metodi suddivisi nelle varie classi.
codice:
public class A{
metodoA();
metodoB();
}
public class B{
metodoC();
}
Diciamo che adesso vuoi applicare il delegation pattern; quindi crei un nuova classe Delegation
che non fà altro appunto che delegare
codice:
public class Delegation()
{
private A aInstance;
private B bInstance;
public Delegation()
{
aInstance = new A();
bInstance = new B();
}
public void callMetodoA()
{
aInstance.metodoA();
}
.....
}
Ora io nella classe Delegation posso dichiarare i metodi come mi pare a piace non sono obbligato a rispettare le firme definiti in A etc...
non stiamo parlando di dei file Cpp che hanno x esempio il metodo somma() che uno crea la classe java crea il metodo nativo e cambia la firma essnedo cmq semplice...
Non ho mai detto che questo è la cosa migliore da fare o che sia la più semplice.
Ma quando si tratta di JNI è una prassi comune, in quanto le librerie cpp etc... non vengono di solito pensate per essere usata da java.