当一个方法的参数超过3个以上,就可以考虑将参数封装成一个对象。将参数封装成对象后提高了代码的可读性,并且该参数对象也可以供多个方法调用,以后如果增加删除参数,方法本身不需要修改,只需要修改参数对象就可以。
重构前代码
public class Registration
{
public void Create(decimal amount, Student student, IEnumerable<Course> courses, decimal credits)
{
// do work
}
}
重构后代码
public class RegistrationContext
{
public decimal Amount { get; set; }
public Student Student { get; set; }
public IEnumerable<Course> Courses { get; set; }
public decimal Credits { get; set; }
} public class Registration
{
public void Create(RegistrationContext registrationContext)
{
// do work
}
}