2009-10-13 7 views
0

시나리오 : 당신은 고객이 개 필드를 업데이트 할 필요가업데이트 명령의 건축 적용 질문

아직 어디서든 프로젝트의 방법 UpdateCustomer이없는

당신은을 만들어야합니다 전체 고객 개체를 가져 와서 모든 필드에 대한 모든 업데이트를 수행 할 수있는 UpdateCustomer (고객 고객)라는 메서드

또는

예를 들어 363,210

(분명히 이름이 여기에 게시 그냥)는 UpdateCustomer2Fields (문자열 월, 문자열 년)를 만들고 그냥

하지만 경우 UpdateCustomerThat UpdateCustomerThis 의 졸라 상상할 수

그 두 필드를 업데이트 UpdateCustomer를 하나만 공개하면 고객 개체를 전달하고 아무 것도 업데이트하지 않고 어디에서나 사용할 수 있습니다.

좋음, 나쁨? 어느쪽으로 갈 지.

답변

1

정비의 어려움을 줄여야하는 이유가없는 한 모든 필드를 업데이트해야합니다.

모든 필드를 업데이트하지 않는 이유. 이것들은 모두 환경에 매우 특유한 것이며 여러분이 상황을 관찰 한 경우에만 유효합니다.

  1. 대부분의 거래가 업데이트되므로 불필요한 데이터가 네트워크를 통해 전달되므로 많은 부담이됩니다.
  2. 비즈니스 또는 법규를 준수하려면 모든 트랜잭션과 함께 정확히 어떤 데이터가 변경되었는지 (존재하는 경우) 정확히 로그해야합니다. 그러나 환경에 따라 데이터베이스 서버에 기록하는 것이 가장 좋습니다.
  3. 일부 사용자는 일부 입력란에 대한 업데이트 권한이 없어야합니다. 이 아키텍처는 아키텍처에 따라 다르며 기능을 노출하는 방식과 관련이 있습니다. 특정 정보를 업데이트하기 위해 특정 자격 증명이 있어야하는 경우 일반적으로 모든 트랜잭션이 모든 정보를 업데이트하지 않아도됩니다. 이것은 동적 일 수 있으며 업데이트 할 필드 사전 (또는 다른 선택 항목)을 전달할 수 있습니다. 필자는 일반적으로 서로 다른 액세스 권한을 가진 여러 소비자가있는 서비스를 사용하여 계층화 된 아키텍처를 실행합니다.
  4. 나는 그것을 놓쳤는가?

일반적으로 대답은 전체 개체를 전달하는 것입니다.

0

전체 고객 개체를 가져 와서 모든 필드에 대해 모든 업데이트를 수행 할 수있는 UpdateCustomer (고객 고객)라는 메서드를 만듭니다.

간단하게 유지하십시오. 이제 더 큰 문제에 시간을 할애 할 수 있습니다.

+0

나는 그것을 간단하게 유지했다. – FiveTools