AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ModelMaker: Pattern bearbeiten

Ein Thema von barnti · begonnen am 15. Nov 2004 · letzter Beitrag vom 15. Nov 2004
Antwort Antwort
Seite 1 von 2  1 2      
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#1

ModelMaker: Pattern bearbeiten

  Alt 15. Nov 2004, 10:26
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
Gruß,

Barnti
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#2

Re: ModelMaker: Pattern bearbeiten

  Alt 15. Nov 2004, 10:43
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"?
gruß, choose
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#3

Re: ModelMaker: Pattern bearbeiten

  Alt 15. Nov 2004, 10:46
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.
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: ModelMaker: Pattern bearbeiten

  Alt 15. Nov 2004, 10:48
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...
Gruß,

Barnti
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: ModelMaker: Pattern bearbeiten

  Alt 15. Nov 2004, 10:49
Hi Robert_G,


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...
Gruß,

Barnti
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#6

Re: ModelMaker: Pattern bearbeiten

  Alt 15. Nov 2004, 10:51
Jupp, wäre mal inetressant.
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#7

Re: ModelMaker: Pattern bearbeiten

  Alt 15. Nov 2004, 11:09
@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.
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: ModelMaker: Pattern bearbeiten

  Alt 15. Nov 2004, 11:34
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;
Gruß,

Barnti
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#9

Re: ModelMaker: Pattern bearbeiten

  Alt 15. Nov 2004, 11:53
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 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...
gruß, choose
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#10

Re: ModelMaker: Pattern bearbeiten

  Alt 15. Nov 2004, 11:54
Zitat von barnti:
verstehe ich das richtig? In dem betreffenden Thread ist die typisierte Kontante durch eine globale Variable ersetzt worden?
Ganz genau.
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz