工厂和非工厂设计模式的差异

时间:2010-09-08 22:14:40

标签: design-patterns

既有抽象又有工厂模式。这些与为何使用另一个之间究竟有什么区别?

由于

3 个答案:

答案 0 :(得分:2)

维基百科文章中提供了一个很好的例子:http://en.wikipedia.org/wiki/Abstract_factory_pattern

抽象工厂是一个“工厂界面”,可以由各种具体工厂实施。

答案 1 :(得分:1)

  

有抽象和工厂模式。

“四人帮”一书讲述了两种模式:工厂方法和抽象工厂。

Factory方法听起来就像是一个用于创建对象的抽象方法:

public interface SomeInterface {
    Foo create(); // factory method
}

public class SomeClass implements SomeInterface {
    Foo create() {
        // the concrete type being constructed is abstracted by the factory method
        return new DerivedFoo();
    }
}

抽象工厂是类型,它定义了用于创建对象的抽象。在上面的示例中,SomeInterface是一个抽象工厂。

这两者并不总是相互耦合。具有一些具有工厂方法的功能的常规具体类是完全有效的。一个抽象工厂说整个类的目的是创建一个或多个对象。

答案 2 :(得分:0)

如果您正在寻找设计模式的快速参考站点,请查看http://www.dofactory.com/Patterns/Patterns.aspx示例(使用C#)和简要说明。

此外,Head First Design Patterns一书(使用Java示例)有助于以易于理解的格式分解不同的模式。

我建议那些刚开始研究设计模式的人使用这两种资源。