Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   ModelMaker: Pattern bearbeiten (https://www.delphipraxis.net/33936-modelmaker-pattern-bearbeiten.html)

barnti 15. Nov 2004 09:26


ModelMaker: Pattern bearbeiten
 
Hallo,

ich habe mit ModelMaker einer meiner Klassen das Sigletonmuster zugewiesen. Dies steht direkt in MM zur Verfügung. Meine Frage: Kann ich die Member des Patterns irgentwie umbenennen? Ich hätte gern sprechende Bezeichner:

Instance -> Factory

choose 15. Nov 2004 09:43

Re: ModelMaker: Pattern bearbeiten
 
Hallo Bartni,

das Umbennen von Members, die von einem Muster angelegt wurden, ist meines Wissens nicht möglich, weil das Muster und nicht der Anwender der "Besitzer" der Elemente ist.
Wenn Du -wie beim Singleton wahrscheinlich der Fall- nicht an einer permanenten Synchronisation zwischen Struktur der Klasse und Muster (wie zB beim Visitor) interessiert bist, sollte das CodeTemplate "Singleton" für Dich geeignet sein: Die Vorlage erstellt einmalig die notwendigen Elemente, um das Singleton-Muster zu realisieren und belässt den Anwendder als Besitzer.

Warum hältst Du "Factory" als geeigneter als "Instance"?

Robert_G 15. Nov 2004 09:46

Re: ModelMaker: Pattern bearbeiten
 
Wundert mich auch...
Instance ist doch die absolute StiNo-Bzeichnung für ein Singleton.
BTW: Mich würde mal interessieren wie der MM das umsetzt, alle Singleton-Versuche meinerseits in Delphi32 sahen absolut scheußlich aus. :(

barnti 15. Nov 2004 09:48

Re: ModelMaker: Pattern bearbeiten
 
Moin Choose,

ich habe das CodePattern aus MM übernommen. Der Name 'Factory' ist halt sprechender als Instance, da ich das Muster 'Abstrakte Fabrik' mit Hlfe des Singletons implementiere.

Wenn es nicht in MM direkt geht werde ich wohl den Umweg über Codeimport wählen...

barnti 15. Nov 2004 09:49

Re: ModelMaker: Pattern bearbeiten
 
Hi Robert_G,


Zitat:

Zitat von Robert_G
Wundert mich auch...
Instance ist doch die absolute StiNo-Bzeichnung für ein Singleton.
BTW: Mich würde mal interessieren wie der MM das umsetzt, alle Singleton-Versuche meinerseits in Delphi32 sahen absolut scheußlich aus. :(

wenn du am Code interessiert bist, kann ich das ja mal veröffentlichen bzw dir als PM schicken...

Robert_G 15. Nov 2004 09:51

Re: ModelMaker: Pattern bearbeiten
 
Jupp, wäre mal inetressant. :)

Sanchez 15. Nov 2004 10:09

Re: ModelMaker: Pattern bearbeiten
 
@Robert
In diesem Thread hab ich mal die MM Singleton-Realisierung gepostet:
http://www.delphipraxis.net/internal...588&highlight=

Richtig schön sieht sie nicht aus.

barnti 15. Nov 2004 10:34

Re: ModelMaker: Pattern bearbeiten
 
Hi,

verstehe ich das richtig? In dem betreffenden Thread ist die typisierte Kontante durch eine globale Variable ersetzt worden?
Delphi-Quellcode:
var
  FInstance: TTest = nil;

class function TTest.AccessInstance(Request: Integer): TTest;
begin
  case Request of
    0 : ;
    1 : if not Assigned(FInstance) then FInstance := CreateInstance;
    2 : FInstance := nil;
  else
    raise Exception.CreateFmt('Illegal request %d in AccessInstance', [Request]);
  end;
  Result := FInstance;
end;

choose 15. Nov 2004 10:53

Re: ModelMaker: Pattern bearbeiten
 
Der Ansatz über eine globale Variable ist in sofern passender, als dass die zuweisbare typisierte Konstante nur ein Feature ist, dass aus Gründen der Abwärtskompatibilität erhalten wird...

Zitat:

Zitat von Bartni
Der Name 'Factory' ist halt sprechender als Instance, da ich das Muster 'Abstrakte Fabrik' mit Hlfe des Singletons implementiere.

Das stimmt so nicht ganz: Du arbeitest nach meinem Verständnis mit einer Fabrik, von der es lediglich ein Exmeplar geben soll und kombinierst damit zwei Muster. Um die Fabrik zu erzeugen nutzt Du die Klassenmethode des Singleton und um die Produkte durch die Farbrik erzeugen zu lassen, schließliche entsprechende Erzeugungsnachrichten an das einzige Exemplar.

Wenn Du zur Laufzeit mit unterschiedlichen Fabriken arbeitest, könnte eine Registratur Sinn machen, die einen Schlüssel auf ein zuvor (und einmalig) erzeugtes Exemplar der zugehörigen Fabriken abbildet.Das Singleton-Muster wird dann überflüssig und stellt ohnehin eine Beschränkung der abstrakten Fabrik dar: Fabriken lassen sich nicht länger konfigurieren, um angepasste Varianten der Produkte zu erzeugen...

Sanchez 15. Nov 2004 10:54

Re: ModelMaker: Pattern bearbeiten
 
Zitat:

Zitat von barnti
verstehe ich das richtig? In dem betreffenden Thread ist die typisierte Kontante durch eine globale Variable ersetzt worden?

Ganz genau.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:56 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz