Я разрабатываю API на Java для набора численных алгоритмов, которые действуют на массивах двоек (для финансовой статистики в реальном времени, как это происходит). По соображениям производительности API должен работать с примитивными массивами, поэтому List
и тому подобное - не вариант.
Типичным примером использования может быть объект алгоритма, который принимает два входных массива и возвращает выходной массив, содержащий результат, вычисленный из двух входных массивов.
Я хотел бы установить последовательные соглашения о том, как параметры массива используются в API, в частности:
someFunction(double[] input, int inputOffset, int length)
Цели - достичь баланса эффективности, простоты для пользователей API и согласованности как внутри API, так и с установленными соглашениями.
Очевидно, что вариантов много, так какой же дизайн API будет наилучшим?