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

Design patterns 工厂和非工厂设计模式的差异,design-patterns,Design Patterns,既有抽象模式,也有工厂模式。这两者之间到底有什么区别?为什么一个可以用来代替另一个 谢谢维基百科文章中给出了一个很好的例子: 抽象工厂是可以由各种具体工厂实现的“工厂接口”。维基百科文章中给出了一个很好的例子: 抽象工厂是一种“工厂接口”,可由各种具体工厂实现。如果您正在寻找设计模式的快速参考站点,请查看示例(使用C#)和简要说明 此外,Head First Design Patterns手册(使用Java示例)有助于以易于理解的格式分解不同的模式 对于刚刚开始研究设计模式的人,我推荐这两种资源

既有抽象模式,也有工厂模式。这两者之间到底有什么区别?为什么一个可以用来代替另一个


谢谢

维基百科文章中给出了一个很好的例子:


抽象工厂是可以由各种具体工厂实现的“工厂接口”。

维基百科文章中给出了一个很好的例子:


抽象工厂是一种“工厂接口”,可由各种具体工厂实现。

如果您正在寻找设计模式的快速参考站点,请查看示例(使用C#)和简要说明

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


对于刚刚开始研究设计模式的人,我推荐这两种资源。

如果您正在寻找设计模式的快速参考网站,请查看示例(使用C#)和简要说明

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

我向刚刚开始研究设计模式的人推荐这两种资源

既有抽象模式,也有工厂模式

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

工厂方法就是它听起来的样子,一种用于创建对象的抽象方法:

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
是一个抽象工厂

这两者并不总是相互耦合的。有一个带有一些功能的常规具体类,它也有一个工厂方法,这是非常有效的。抽象工厂表示整个类的目的是创建一个或多个对象

既有抽象模式,也有工厂模式

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

工厂方法就是它听起来的样子,一种用于创建对象的抽象方法:

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
是一个抽象工厂

这两者并不总是相互耦合的。有一个带有一些功能的常规具体类,它也有一个工厂方法,这是非常有效的。抽象工厂表示整个类的目的是创建一个或多个对象