2012-10-03 110 views
0

“这是关于创建对象(产品),而不指定将创建的对象的确切类别”。怎么会这样? ,如果有一个evryone从它继承的抽象类 - 听起来像“多态性”。无论如何有什么区别?工厂方法D.P

谢谢!

回答

1

让我们考虑,我们有一个接口:

public interface IClass {} 

此外,我们有两个类至极继承接口(或抽象类,或者随便什么其他的基类):

public class First : IClass {} 

public class Second: IClass {} 

的第一个是习惯于产品代码的员工,第二个是用于测试。

而且你有一个工厂方法:

public IClass GetClass() 
{ 
    if(InTest) return new Second(); 
    else 
    return new First(); 
} 

所以,代码至极调用此方法不指定要创建的确切类。它只知道如何使用它。