====== factory ====== Eine Factory ist ein Stück code, ähnlich einer Funktion oder Methode, die etwas produziert. Bei einer Klasse kann eine Factory ein Construktor für Subklassen sein. t is Tier ptr : new Tier( "Katze" ); // wenn es eine factory Tier( tiertype is string ) gibt ===== Factory als Attribut ====== Eine Factory Methode oder Funktion hat keinen schreiben Zugriff auf Membervariablen oder globale Variablen, sofern nicht explizit für diese Methode freigegeben. Sie greift nicht modifizierend auf das Programm ein, sondern liefert nur ein Ergebnis. concat is factory code( a, b is string ) : a+b; Dieser Code liefert also ein Ergebnis zurück, dass extra für den Aufrufer produziert wurde. Entsprechend darf er es nicht ignorieren. Der Aufruf concat( "Hallo", "Welt" ); wird also mit einem Fehler quittiert. print concat( "Hallo", "Welt" ); ruft das Ergebnis ab: ist also in Ordnung. ===== minor als Attribut ====== Als Gegenvorschlag - in der Tratition, dass bei Genesys entschärft und nicht geschärft werden soll wäre das Schlüsselwort Minor. get is code( int & value ) as bool; // bool result muss geprüft werden set is code( int value ) as minor bool; // bool result darf ignoriert werden