2012-10-01 35 views
0

修改或稍微更改傳遞的參數對象的方法的公認命名約定是什麼? 特別,方法是這樣的:修改輸入的方法中的對象的C#命名約定

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

究竟是什麼你修改,如果比方說註冊人到一些服務,你可以說RegisteredPerson而不是Person? –

+0

參數對象類型爲「tPerson」,返回類型爲「personDTO」類型。 – doque

+3

那麼以相同的方式,你有人和PersonDTO我會說你有一個PersonAdapter? (或PersonMapper或PersonTransformer取決於你喜歡什麼) –

回答

3
class Mapper { 

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

問題解決了嗎? 您的額外變量可能被描述爲code smell。 如果您需要額外的變量,請將其稱爲resultretval。如果它不是返回值,則稱它爲personDto

對於該方法,始終描述你所做的事情。在這種情況下,你映射一個人,所以MapPerson似乎對我很好。

+1

我覺得這聽起來不錯,但我會說PersonMapper而不是MapPerson。 –

+0

謝謝,那就是我一直在尋找的東西。 – doque

+0

是的類的名稱。 –

3

你可以這樣寫一個構造函數來代替:

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

在n層環境中編寫複製構造函數來處理轉換可能很痛苦。映射器(如automapper)通常是更好的選擇。 – esskar

0

打電話給你的方法

CompleteAndMapPerson