2012-10-01 4 views
0

전달 된 매개 변수 개체를 수정하거나 약간 변경하는 메서드에 대해 허용되는 명명 규칙은 무엇입니까? 이 같은 특히 , 방법 :입력을 수정하는 메서드의 개체에 대한 명명 규칙

class Mapper { 
    public PersonDTO MapPerson(tPerson p) { 
     var person = new PersonDTO { 
      ID = p.ID, 
      Name = p.Name, 
      Country = Retriever.GetCountryName(p.CountryID) 
     }; 

     return person; 
    } 
} 

은 "사람"기술자는 반환 객체뿐만 아니라 매개 변수를 모두 적용하기 때문에, 나는 가장 좋은 방법은 여기 모르겠어요.

+1

무엇이 사람을 등록 예를 들어 말을하면 정확히, 수정하는 Person 대신 RegisteredPerson이라고 말할 수있는 서비스가 있습니까? –

+0

매개 변수 객체의 유형이 "tPerson"이고 반환 유형의 유형이 "PersonDTO"입니다. – doque

+3

Person과 PersonDTO를 가지고있는 것과 같은 방법으로 PersonAdapter가 있다고 말할 수 있습니까? (또는 원하는 사람에 따라 PersonMapper 또는 PersonTransformer) –

답변

3
class Mapper { 

    public PersonDTO MapPerson(tPerson person) 
    { 
     return new PersonDTO { 
      ID = person.ID, 
      Name = person.Name 
     }; 
    } 
} 

문제가 해결 되었습니까? 여분의 변수는 code smell으로 설명 될 수 있습니다. 추가 변수가 필요한 경우 result 또는 retval으로 전화하십시오. 반환 값이 아니면 personDto이라고합니다.

및 방법에 대해 항상 당신이하는 일을 설명하십시오. 이 경우에는 사람을 매핑하므로 MapPerson이 나에게 잘 보입니다.

+1

필자는 이것이 괜찮은 것 같지만, MapPerson보다는 PersonMapper라고 말할 것입니다. –

+0

고마워요, 그게 내가 찾고 있던 것입니다. – doque

+0

클래스의 이름. –

3

대신 생성자로이 쓸 수 :

class PersonDTO 
{ 
    public PersonDTO(tPerson person) 
    { 
     ID = person.ID; 
     Name = person.Name; 
    } 
} 
+0

변환을 처리하기 위해 n 계층 환경에서 복사 생성자를 작성하는 것은 힘들 수 있습니다. 자동 매퍼와 같은 매퍼가 종종 더 나은 선택입니다. – esskar

0

당신의 방법 전화

CompleteAndMapPerson