저는 복소수 배열 (실시간 재무 통계 발생시)에서 작동하는 숫자 알고리즘 집합에 대해 Java API를 설계하고 있습니다. 성능상의 이유로 API는 기본 배열을 사용해야하므로 List<Double>
등과 같은 옵션은 사용할 수 없습니다.배열에서 작동하는 함수에 대한 API 디자인
일반적인 사용 사례는 두 개의 입력 배열을 사용하고 두 입력에서 계산 된 결과가 포함 된 출력 배열을 반환하는 알고리즘 객체 일 수 있습니다.
나는 특히, 배열 매개 변수가 API에서 사용하는 방법에 대한 일관성있는 규칙을 설정하고 싶습니다 : 사용자가 더 큰 배열의 일부에 역할을 할 수 있도록
이- 내가 모든 기능과 오프셋을 포함해야 예 :
someFunction(double[] input, int inputOffset, int length)
- 함수에 입력 및 출력 매개 변수가 모두 필요한 경우 입력 또는 출력이 먼저 매개 변수 목록에 있어야합니까?
- 호출자가 출력 배열을 할당하고 매개 변수 (잠재적으로 재사용 할 수 있음)로 전달해야합니까? 아니면 함수가 호출 될 때마다 출력 배열을 만들고 반환해야합니까?
목표는 API 내에서 그리고 일관된 협약을 통해 API 사용자와 일관성의 균형을 이루기위한 것입니다.
분명히 많은 옵션이 있으므로 전체적으로 가장 우수한 API 디자인은 무엇입니까?
저는 그가 자바로 작성하고 있다고 생각합니다. 따라서 "스택에"있는 주석은 그 맥락에서 의미가 없습니다. – user949300
아니요, HotSpot은 스택에서 이탈하지 않는 작은 개체를 할당합니다. –
그러나 이러한 배열은 결과로 반환되므로 절대 이스케이프 처리됩니다. – user949300