Erstelle eine injizierbare Klasse (Konstruktor)

Ich bin eine AngularJS-Neuling, und ich bin gerade erst anfangen zu verstehen, die Konzepte und Unterschiede von factoryservice und controller. So wie ich das verstehe, eine factory zurück, "value object", die injiziert werden können. Die meisten Beispiele, die ich gesehen habe etwas wie das hier tun:

angular.module('module.factories', function() {
    factory('FactoryObject', function() {
        return {
            someFunction: function(someParam) {};
            someOtherFunction: function(someOtherParam) {});
        };
    });
});

In meinem controllerich möchte in der Lage sein, um dieses Objekt verwenden, aber ich möchte initialisieren/instanziieren Sie es in der Steuerung, da kann es neu initialisiert werden je nach Veranstaltungen/Aktionen in der Steuerung. Also, ich wurde gefragt, ob ich zurückkehren könnte, eine Konstruktor-Funktion in der factory statt?

angular.module('module.factories', function() {
    factory('FactoryObject', function() {

        function FactoryObject(initParam) {
        }

        FactoryObject.prototype.someFunction = function() {};

        return FactoryObject;

    });
});

Ist das ein passendes Muster für eine eckige Fabrik? Oder ist es nur "übertrieben" zu verwenden, eine Fabrik für ein benutzerdefiniertes Objekt, wie diesem? Sollte ich gerade in einer Bibliothek js-Datei, und verweisen Sie von dort statt? Ein Vorteil, dass es in einer Fabrik ist, dass es leicht sein wird, zu verhöhnen, als es in einem test, da wird es injiziert, wo es verwendet wird. Gibt es andere Mechanismen in Eckig, könnte stattdessen verwendet werden?

InformationsquelleAutor der Frage NilsH | 2013-04-17

Schreibe einen Kommentar