一个工厂函数能够通过实施Replace Cinditional with Polymoorphism,重构成工厂模式,或者换句话说,工厂模式是不是用的Replace Cinditional with Polymoorphism重构方法重构简单工厂模式得到的(即重构一个工厂函数)。
但在《重构》中P286中,却有这样一句话:由于这是一个工厂函数,不能实施Replace Cinditional with Polymoorphism,因为使用该函数时对象还没创建出来,以下是工厂函数
//工厂函数
static Employee create(int typr)
{
switch(typr)
{
case ENGINEER:
return new Engineer();
case SALESMAN:
return new SaleMan();
case MANAGER :
return new Manager();
}
}
请前辈指教
这个是简单工厂吧?这个简单工厂很容易理解,但貌似用的比较多的是抽象工厂,反射工厂我曾经看过,感觉那个才真正解决了创建对象的方法,但因为反射,所以性能上可能不如抽象工厂(个人感觉是这个原因),所以还是抽象工厂用的比较多吧。。。