Большое число параметров в методе – дурной запах в коде. Фаулер уже давно издал на эту тему рекомендацию – если параметров много, то надо выделить их в особый класс-параметр. И совсем недавно мне пришлось видеть код, который вызывал лёгкую ухмылку удивления:
public Person(string firstName, string secondName, string lastName){_firstName = firstName;_secondName = secondName;_lastName = lastName;}
Выделить параметр не так сложно, он напрашивается сам по себе. Но реализация повеселила:
public PersonName(string firstName, string secondName, string lastName){_firstName = firstName;_secondName = secondName;_lastName = lastName;}public Person(PersonName personName){//WTF???_firstName = personName.FirstName;_secondName = personName.SecondName;_lastName = personName.LastName;}
О да! Таскать строки по одной так весело и интересно, что лучше делать это дважды! Сначала затолкав их в PersonName и затем скопировав в Person. Бессмысленная и беспощадная трата человеко-часов. Правильная и очевидная реализация:
public Person(PersonName personName){_personName = personName;}
Последний вариант позволит заняться чем-то более интересным, нежели таскание туда-сюда строк, чисел, дат и прочих молекул.
Комментариев нет:
Отправить комментарий