Предположим, что нам нужно реализовать некоторый java-метод в собственном коде и выставить его пользователю. Мы знаем, что вся работа выполняется на родной стороне, т.е. Единственная ответственность java-кода - передать предоставленные пользователем аргументы в собственный код и вернуть результат обратно. В соответствии с этим, java-слой может быть реализован двумя способами:
-
Используя собственные методы, непосредственно связанные с пользователем:
public native Object doSmth(Object arg0, Object arg1);
-
Используя тонкую публичную оболочку вокруг собственного собственного метода:
public Object doSmth(Object arg0, Object arg1) { return nativeDoSmth(arg0, arg1); } private native Object nativeDoSmth(Object arg0, Object arg1);
Я видел оба подхода в реальных проектах и даже в первых и последних в том же проекте.
Итак, мой вопрос: имеет ли какая-либо из упомянутых альтернатив какие-то технические или эксплуатационные или ремонтные преимущества, которые должны поощрять использование только одного варианта. Или, может быть, это всего лишь вопрос вкуса?