0

“这是关于创建对象(产品)而不指定将要创建的对象的确切类别”。怎么会这样?并且如果有一个 evryone 继承自它的抽象类 - 听起来像“多态性”。有什么区别呢?

谢谢你!

4

1 回答 1

1

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

public interface IClass {}

此外,我们有两个继承该接口的类(或抽象类,或任何其他基类):

public class First : IClass {}

public class Second: IClass {}

第一个用于生产代码中的员工,第二个用于测试。

你有一个工厂方法:

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

因此,调用此方法的代码并未指定将创建的确切类。它只知道如何使用它。

于 2012-10-03T08:00:53.643 回答