代码之家  ›  专栏  ›  技术社区  ›  GurdeepS

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

  •  0
  • GurdeepS  · 技术社区  · 14 年前

    3 回复  |  直到 14 年前
        1
  •  2
  •   Benoit Courtine    14 年前

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

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

        2
  •  1
  •   munificent    14 年前

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

    《四人帮》一书讲两种模式:工厂 方法

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

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

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

        3
  •  0
  •   keith_c    14 年前

    如果您正在寻找一个很好的设计模式快速参考网站,请查看 http://www.dofactory.com/Patterns/Patterns.aspx

    另外,Head-First设计模式书(使用Java示例)有助于以易于理解的格式分解不同的模式。

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