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.