当一个方法的参数超过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 }}