首页 新闻 搜索 专区 学院

关于重构的问题

0
悬赏园豆:15 [已关闭问题] 关闭于 2011-07-06 14:26

一个工厂函数能够通过实施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();
}
}

请前辈指教

Daywei的主页 Daywei | 小虾三级 | 园豆:551
提问于:2011-06-18 12:14
< >
分享
所有回答(1)
0

这个是简单工厂吧?这个简单工厂很容易理解,但貌似用的比较多的是抽象工厂,反射工厂我曾经看过,感觉那个才真正解决了创建对象的方法,但因为反射,所以性能上可能不如抽象工厂(个人感觉是这个原因),所以还是抽象工厂用的比较多吧。。。

顾晓北 | 园豆:10794 (专家六级) | 2011-06-18 23:29
是 ,这相当于简单工厂,但 我的问题是能否通过实施Replace Cinditional with Polymoorphism,重构成工厂模式,或者换句话说,工厂模式是不是用的Replace Cinditional with Polymoorphism重构方法重构简单工厂模式得到的(即重构一个工厂函数)。如果是那如何理解在《重构》中P286中,却有这样一句话:由于这是一个工厂函数,不能实施Replace Cinditional with Polymoorphism,因为使用该函数时对象还没创建出来
支持(0) 反对(0) Daywei | 园豆:551 (小虾三级) | 2011-06-20 09:45
《重构》还真没看过。。。
支持(0) 反对(0) 顾晓北 | 园豆:10794 (专家六级) | 2011-06-20 22:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册