2010-03-04 1 views
0

나는 많은 JDBC 또는 액티브처럼 키 값을 저장하는 추상화 계층을 개발하고, 내가 가장 기본적인에서이되도록 API의 다양한 수준, 제공하고자 그러나다른 사용자 및 제어 수준에 맞게 API를 설계하는 방법은 무엇입니까?

get Key 
set Key, Value 
exists Key 
delete Key 

을, 나는 또한 원하는

get Key, Number_of_nodes_to_read_from 
set Key, Value, Number_of_nodes_to_write_to 
exists Key, Number_of_nodes_to_check 
delete Key, Number_of_nodes_to_check, timeout_in_milliseconds 

: 같은 CAP 정리의 데이터 저장소로 사용할 수있는 낮은 수준의 세부 정보를 제공하는 다른 API를 제공하고 정말 나는 또한 값이 일을 추가 한 API처럼 맵 등을 추가 할 수 있습니다 할 일을 복잡하게 만들 감속기, 색인, 필드가있는 레코드, 검색.

어쨌든, 내 질문에 내가 기능 중 하나 개 거대한 목록을 작성해야하는지, 또는 나는 향후 API에 추가 할 수 있습니다 명심 API를 분할한다.

감사

쥬 바이 르

참고 : 내가 가진 원래 질문은 여기에 있습니다 :

Is this API too simple?

답변

1

장황한 대답 대신에, 난 강력하게 당신이 구글을 시청하는 것이 좋습니다 Techtalk은 "How To Design A Good API and Why it Matters"이라고 제목을 붙였습니다. 이 제어의 높은 수준을 사용자에게 제공 할 필요가로

내 자신의 추천 때까지 만 내장지도 나 언어가 제공하는 사전 인터페이스를 통해 API를 노출하는 것입니다. 당신이 처음부터 너무 많이 노출되면, 당신은 추상화를 제공하기 위해 ... 즉,하는 API의 목적에 완전히 반대되는 특정 구현에 자신을 고정됩니다.

+0

은 예, 동의합니다. 몇 주 전에 Google 기술 토론을 본 후 신중하게 생각하기로 결정했습니다. 나는 아름다운 코드와 너무 깨끗한 코드, 매우 도움이 – Zubair

1

어째서 get Key, Map_of_params
두 번째 매개 변수는 키 - 값의 간단한 맵일 수 있습니다.

+0

다음 기회를 읽고, 그래, 나는 이것이 루비 레일에 많이하지 많은처럼, 그것을하는 아주 좋은 방법이 될 것이라고 생각합니다. 다중 언어 API를 사용하고 있기 때문에 Java에서 인수에 많이 사용되는 해시가 있습니까? – Zubair

+0

글쎄, 나는 Heads First OOAD 책에서 이것을 보았다. 일반적으로 매개 변수 객체를 사용할 수도 있지만 Map은 괜찮은 것처럼 보입니다. – Padmarag

+0

실제로 이것을 자신에게 사용해 보셨습니까? 실제로 어떻게 찾았는지 찾아내는 것이 유용 할 것이기 때문에 물어 봅니다. – Zubair

관련 문제