2011-04-03 170 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(); 
    } 
}