2011-04-03 104 views
1

在解开这个问题之前,我实际上是要求这是一个实际问题,而不是引发对话。这是我的场景抽象工厂和工厂方法可以一起使用吗?

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

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

你或者你能指点我一个例子:应用这两种模式并使它们共存在一起是可行的吗?如果不是,这是不好的做法?

请不要直接给我一个给我这些模式的字典定义的网站,我很清楚每一个,并在那里每天使用,但没有遇到我需要这两种情况。提前致谢。

+0

“我有最近遇到了一个场景,我被指示将这两个部分一起使用“ - 请描述一下吗? – 2011-04-04 12:21:37

+0

您的问题太抽象,无法回答 – 2011-04-04 17:30:59

回答

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(); 
    } 
}