在这里使用Factory方法模式有什么好处

时间:2012-12-11 06:20:41

标签: javascript design-patterns

我正在学习此http://code.google.com/p/jslibs/wiki/JavascriptTips网站的Javascript提示。

我来看看Factory method pattern。他们展示了以下示例

Complex = new function() {

        function Complex(a, b) {
                // ...
        }

        this.fromCartesian = function(real, mag) {

                return new Complex(real, imag);
        }

        this.fromPolar = function(rho, theta) {

                return new Complex(rho * Math.cos(theta), rho * Math.sin(theta));
        }
}


var c = Complex.fromPolar(1, Math.pi); // Same as fromCartesian(-1, 0);

但我无法猜测为什么这实际上被称为Factory method pattern。我想知道这个Factory method pattern以及使用它的优势,特别是知道在哪里使用它。

1 个答案:

答案 0 :(得分:2)

工厂模式可以描述为创建类实例的函数(如真实工厂生产汽车或玩具等)。在您的示例中,Complex是一个可以通过两种方式创建实例的工厂:笛卡儿或极地。

Factory模式在许多场景中都很有用,包括:

  • 工厂维护创建实例所需的信息(例如序列号,或通常更复杂的信息)
  • 工厂维护实例(例如资源池)。