重构大构造函数 [英] Refactoring large constructors

查看:188
本文介绍了重构大构造函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我们的领域模型中有一些对象,你可以用漫画术语 攻击 大型构造函数,这样IntelliSense就会试图向你展示。 ..



使用50个左右的参数(大多数是值类型,一些引用类型)提示一个类型:

  public class MyLegacyType 
{
public MyLegacyType(int a1,int a2,int a3,... int a50)// etc
{
}
}



现在我会说一下,没有这种类型不能改变。类型本身在逻辑上代表一个实体,其恰好是属性重的。构造此类型的调用者提供来自多个源的大多数参数,尽管一些是默认的。也许有一个模式来源提供给建设,而不是结果。



但是,可以改变的是如何创建类型。目前我们有部分代码遭受:



查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆