NEW ist eine Fabrikmethode, die einen Standardmechanismus bietet, um Objekte einer Klasse zu erzeugen. Mit COBOL-Sprachmitteln beschrieben, sieht die Schnittstelle der Methode NEW wie folgt aus:
Interface-id. BaseFactoryInterface. Procedure division. Method-id. New. Data division. Linkage section. 01 outObject usage object reference active-class. Procedure division returning outObject. End-method New. End Interface BaseFactoryInterface.
Allgemeine Regeln
Die Methode NEW teilt Speicherplatz für ein Objekt zu und initialisiert seine Daten. Ein Objekt befindet sich unmittelbar nach seiner Erzeugung im Initialzustand.
Ist für das Erzeugen eines neuen Objektes nicht ausreichend Speicherplatz vorhanden, so entsteht die Ausnahmesituation EC-OO-RESOURCE. Der weitere Ablauf erfolgt entsprechend Regel 6 f) der INVOKE-Anweisung (siehe Abschnitt „INVOKE-Anweisung").
Beispiel 12-25
Methode NEW überschreiben
Die Methode NEW kann überschrieben werden, um zusätzliche objektspezifische Initialisierungen auszuführen, die über die Initialwerte aus den VALUE Klauseln hinausgehen. In diesem Fall ist vorher das neue Objekt mit Hilfe der „originalen“ NEW Methode zu erzeugen.
... FACTORY. DATA DIVISION. WORKING-STORAGE SECTION. 01 ident pic 9(9) COMP VALUE 0. ... METHOD-ID. NEW OVERRIDE. DATA DIVISION. LINKAGE SECTION. 01 neues-objekt USAGE OBJECT REFERENCE ACTIVE-CLASS. PROCEDURE DIVISION RETURNING neues-objekt. 1. INVOKE SUPER "NEW" RETURNING neues-objekt. COMPUTE ident = ident + ... INVOKE neues-objekt "SPEZIELLE-INITIALISIERUNGEN" USING ident... ... 2. EXIT METHOD. END METHOD NEW. ...