AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Spring-DI / DelegatedConstructor / Factory für Dummies
Thema durchsuchen
Ansicht
Themen-Optionen

Spring-DI / DelegatedConstructor / Factory für Dummies

Ein Thema von stahli · begonnen am 2. Feb 2012 · letzter Beitrag vom 15. Mär 2012
 
exilant

Registriert seit: 28. Jul 2006
134 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Spring-DI / DelegatedConstructor / Factory für Dummies

  Alt 14. Feb 2012, 11:47
Also entgegen der Realität ist es in dem Fall am einfachsten, den Motor zu fragen, was er denn tanken will. Wie man das im Detail realisiert (ob man direkt Auto.Motor.Kraftstoff anspricht oder die Abfrage in einer Funktion Auto.GetKraftstoff kapselt) und ob man dabei mit Objekten oder Interfaces arbeitet, ist dabei m.E. nebensächlich.
Puh. Er versteht mich.

Für mich ist die Frage interessanter, wie die Objekte (deren Schnittstellen weiter verwendet werden) ertzeugt und verwaltet werden.
Wer ist Owner der Objekte? Gibt es Verschachtelungen? Wer kümmert sich um die Lebensdauer der Objekte?
Meine Welt besteht fast komplett aus typisierten Objektlisten. Objekte die potentiell Property verschiedener anderer Objekte sein können haben ein property "userlist". Ihr Owner (immer eine typisierte Liste) implementiert eine cleanup Methode welche Items mit userlist.count=0 freigibt. Die cleanup methode wird aufgerufen, wenn ein neues Objekt von der Liste verlangt wird. Dort werden die Objekte auch erzeugt.

Beispiel (stark vereinfacht):

methode fuhrpark.fahrzeug(ckennz:string):tfahrzeug;
CleanupInterneListe(cKennz);
result := HolefahrzeugAusInternerListe(ckennz);
if result = NIL then result := erzeugeFahrzeug(ckennz);
InterneListe.add(result);
end;


und wo ein Fahrzeug benötigt wird:

Einsatzfahrzeuge.add(fuhrpark.fahrzeug('K-BW-5050'))


// implementiert ungefähr so:

methode EinsatzFahreuge.add(kfz:tfahrzeug)
ffahrzeuge.add(kfz);
kfz.adduser(self);
end

destructor Einsatzfahrzeuge.destroy;
RemoveMefromProperties;
ffahrzeuge.free;
inherited;
end
Anything, carried to the extreme, becomes insanity. (Exilant)
  Mit Zitat antworten Zitat
 


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 10:03 Uhr.
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