2014-03-27 2 views
2

입력 데이터가 인 경우 관계형 데이터 저장소에 대해서만 업데이트를 수행하는 메서드의 이름을 지정하려고합니다. 즉, 기존 키가 없거나 이전 값과 다른 값을 의미합니다. 동기 부여는 표준 업데이트에 의해 발생하는 데이터 변경 이벤트를 트리거하지 않는 것입니다.업데이트로 새로운 데이터 만 수정하면 무엇을 호출할까요?

해당 업데이트에 대한 올바른 용어 및 예제 서명의 의미는 무엇입니까?

+0

현재 메소드 이름에 * IfStateChanged * 접미사가 붙어 있습니다. IfStateChanged가 약간 애매하기 때문에 이것을 설명하는 데 더 나은 용어가 있는지 확실하지 않습니다. – stevebot

+0

표준 용어가 없다고 생각합니다. 개인적으로는 정상적인 이름을 사용하고 Javadoc에서 업데이트로 인해 데이터가 변경되지 않으면 실제 데이터베이스를 업데이트하지 않는다는 것을 명시합니다. –

+0

SQL에서'update'는 이미 존재하는 행만 갱신 할 수 있습니다. 반면에'insert'는 새로운 행을 삽입 할 것이고 (주어진 키에 대한 행이 이미 존재한다면 실패 할 것입니다.) 아마도 여러분이 사용할 수있는 규칙 일 것입니다. –

답변

2

"입력 데이터가 새로운 경우에만 업데이트를 수행하십시오."라는 설명을 명확히 해두겠습니다.

키의 값이 변경되었을 수로 만 변경, 당신은 정말 "에만 수행 ... 경우 ... 새로운"하지 않는 경우에만 업데이트, 관계형 에 초점을 맞출 경우 .

그러나 실제로 동일한 값을 두 번 적용했는데 두 번째로 아무 것도하지 않으면 시스템은 멱등수입니다. 멱등 원 (adempotent) api는 호출 된 후 상태를 확인하며 재생 상황에서는 변경되지 않습니다.

(때문에 API 설계) 비 나무 등 전화의 빠른 예를

incrementCount(); 

멱등 호출 예 (하는 API와 그것을 허용) 동안

setCount(5); 

참고가되지 무엇이든하는 것은 멱등 원숭이 의 특징이 아니며, 멱등 원 호출에 대해 수행하기에 안전한 최적화입니다. 기본적으로 idempotent API를 사용하면 다음을 수행 할 수 있습니다.

if (currentCommand.equals(lastCommand)) { 
    return; 
} 
관련 문제