1

在驳回这个问题之前,我实际上是在提出一个实际问题,而不是引发对话。这是我的场景

我在很多情况下读到抽象工厂是比工厂方法更进一步的实现,我可以在很多情况下看到为什么这是真的。我对这两者之间的区别也有相当好的理解,但我最近遇到了一个场景,我被指示同时使用这两者。

如何做到这一点一直在绞尽脑汁,我仍然不确定是否推荐它作为一种好的做法。

你,或者你能给我举一个例子,在这个例子中应用这两种模式并让它们共存是可行的吗?如果没有,这是一个不好的做法吗?

请不要将我引导到提供这些模式的字典定义的站点,我非常了解每一个,并且每天都在使用,但没有遇到我需要两者的情况。提前谢谢。

4

1 回答 1

1

好吧,如果您有一个类已经使用了工厂方法,并且您想使用另一个预定义的抽象工厂来实现该方法,您可以在两者之间创建一个适配器:

public class FactoryAdapter : ClassUsingFactoryMethod
{
    private readonly IFactory factory;

    public FactoryAdapter(IFactory factory)
    {
        this.factory = factory;
    }

    protected override Foo CreateFoo()
    {
        return this.factory.Create();
    }
}
于 2011-04-04T05:27:22.897 回答