【问题标题】:Can Abstract Factory and Factory Method be used together?抽象工厂和工厂方法可以一起使用吗?
【发布时间】:2011-04-03 23:18:43
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • “我最近遇到了一个场景,我被指示同时使用这两种方法”——你能描述一下吗?
  • 您的问题太抽象,无法回答

标签: design-patterns factory-pattern abstract-factory


【解决方案1】:

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

public class FactoryAdapter : ClassUsingFactoryMethod
{
    private readonly IFactory factory;

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

    protected override Foo CreateFoo()
    {
        return this.factory.Create();
    }
}

【讨论】:

    猜你喜欢
    • 2011-01-05
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    • 2013-10-17
    相关资源
    最近更新 更多