정렬 된 개체 컬렉션에 대한 인터페이스를 쓰고 있습니다. 늘 그렇듯이, 나는 사용자들에게 맡겨서이 아이템들이 어떻게 정렬되는지를 지정한다. 나는 현재 키 - 값 인터페이스 (정렬 키가 값과 명시 적으로 분리되어 있음) 또는 값 전용 인터페이스 (값이 정렬 키이거나 사용자가 별도의 정렬을 처리해야하는 위치) 비교 함수를 전달하여 키).정렬 된 값을 키 값으로 추상화
필자가보기에 키 - 값 인터페이스는 사용자가 자연스럽게 자체 키를 구성하는 경우에도 항상 값에서 분리 된 키를 갖도록합니다. 그러나 사용자가 키를 처리해야하는 책임은 없으므로 API를 사용할 때 더 간단하고 명확한 사용자 코드가 될 수 있습니다. 값 전용 인터페이스를 사용하면 자체 키인 값을 더 간결하게 표현할 수 있지만 자연스러운 키 - 값 구별이있는 경우 사용자가 자신의 키를 추적하고 처리하도록합니다.
나이가 많은 문학은 가치있는 접근 방식을 선호하는 경향이 있지만, 새로운 문학은 키 - 값 접근 방식을 선호한다는 것은 나에게 (비록 틀릴 수도 있지만) 두 가지 접근법을 모두 지원하는 문헌이 있습니다.
이와 같은 경우 사용자의 기호에 대해 궁금합니다. 일반적으로 다른 사람보다 선호되는 시점에 도착 했습니까? 그렇지 않다면, 보통 무엇을 사용하고, 왜 그런가요?
문제를 파악했지만 키 - 값 (사전)보다 값 - 값 (목록) 구조를 추천하는 경우 몇 가지 추론을 제공하십시오. – sooniln
저는 사전 목록을 (거의) 특별한 경우로 보았습니다 (적어도 정렬 된 모음에 대해 이야기하는 동안). 사전에 사용자가 선택할 수있는 방식으로 사용자가 처리 할 수 있도록 정렬 키를 추상화하여 나열하고, 사전에는 값 목록에 명시 적 정렬 키가 첨부되어 있습니다. 이것은 목록을보다 일반적인 것으로 만들지 만 항상 효율적이지는 않습니다. – sooniln
자세한 답변을 보내 주셔서 감사합니다. 가치있는 구현으로 기대고 있었지만, 내 자신에 대한 더 많은 연구와 결합 된 귀하의 의견은 저를 핵심 가치 접근 방식으로 밀어 붙였습니다. 결국, 개념적으로 Set은 Map보다 더 높은 추상화가 될 수 있지만 Map에서 Set을 구현할 수는 있지만 그 반대는 아닙니다. 이것은 내가 필요로하는 것보다 내게 더 많은 연습이지만, 불행하게도 현재 컨테이너에서 사용되는 언어에 대한 심각한 디자인 결함이 있습니다./ – sooniln