-1

我正在从这个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和使用它的好处,尤其是知道在哪里使用它。

4

1 回答 1

2

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

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

  • 工厂维护创建实例所需的信息(例如序列号,或者通常更复杂的东西)
  • 工厂在其生命周期内维护实例(例如资源池)。
于 2012-12-11T06:38:12.900 回答