一天一个重构方法(21):将构造函数替换为工厂函数
2009-08-03 20:27:24你希望在创建对象时不仅仅是对它做简单的建构动作,将构造函数替换为工厂函数。
public Employee(int type)
{
_type = type;
}
上面构造函数重构成工厂函数后代码如下
public static Employee Create(int type)
{
return new Employee(type);
}
private Employee(int type)
{
_type = type;
}
你可能常常需要根据type code创建相应的对象。现在,创建名单中还得加上subclasses,那么subclasses也是根据type code来创建。然后由于构造函数只能返回被索求的对象,因此你需要将构造函数替换为工厂函数。