Forum: Object-Pascal / Delphi-Language
Delphi
by hansmaad,
16. Jul 2010
Bücher wie GoF usw hab ich schon im Regal stehen. Ich dachte eher an etwas speziell auf Delphi bezogen. Vielleicht verschwenden Delphi Entwickler ja nicht so gern ihre Zeit mit Lesen :lol:
Forum: Object-Pascal / Delphi-Language
Delphi
by hansmaad,
16. Jul 2010
Schade, aber trotzdem Danke:wink:
Gibt es ein empfehlenswertes Buch, dass solche Dinge wie in diesem Thread bespricht (Patterns in Delphi, gutes Design...)?
Die meisen Delphi Bücher die ich mir angesehen habe, sahen nach dem Schema "Klicken Sie Form erstellen um ein Form zu erstellen" aus. Gerne auch englisch.
Forum: Object-Pascal / Delphi-Language
Delphi
by hansmaad,
16. Jul 2010
Ah ok, jetzt ists klar.
Gibt es auch ein const, das die Instanz konstant macht. So dass die Funktion das übergebene Objekt nicht verändert darf?
Forum: Object-Pascal / Delphi-Language
Delphi
by hansmaad,
16. Jul 2010
Also jetzt brauch ich doch noch mal eine genauere Erklärung.
Ich habe es gerade getestet und ich kann auf einem const Argument alles aufrufen und es auch durch nicht konstante Methoden verändern. Was heißt hier const?
type
Test = class
private
x : Integer;
public
constructor Create;
Forum: Object-Pascal / Delphi-Language
Delphi
by hansmaad,
15. Jul 2010
Was bedeuten in Delphi konstante Parameter? Was kann ich auf ihnen ausrufen? Von C++ kenne ich konstante Methoden, die auf konstanten Instanzen aufgerufen werden können. Sowas gibt es hier aber denke ich nicht.
Was bedeutet es einen const Visitor zu übergeben. Gilt dieses const nur für die Schnittstelle (eigentlich sinnlos da Schnittstellen gar keine Daten haben)? Oder weiß der Compiler, dass...
Forum: Object-Pascal / Delphi-Language
Delphi
by hansmaad,
15. Jul 2010
Ok, das sieht ja ganz nett aus (mal davon abgesehen, dass Interfaces für meinen Geschmack generell furchtbar aussehen:wink:).
das IBaseVisitor Interface kann ich mir bei einer abstrakten Basisklasse schenken, da es keine Base Instanzen gibt, korrekt?
TVisitor.VisitA(Instance: TA);
TVisitor.VisitB(Instance: TB);
würde ich wohl abstrakt machen und konkrete Besucher von TVisitor ableiten....
Forum: Object-Pascal / Delphi-Language
Delphi
by hansmaad,
15. Jul 2010
->Polymorphie
Richtig, das hatte ich ja schon auf der ersten Seite erwähnt. Wenn es häufig neue Elementklassen gibt (Base-Nachfahren) ist Visitor schlecht. Auf dieser Seite ist das System nciht "offen für Erweiterungen".
Wenn allerdings meine Elementklassenhierachie ein fertiges System ist, dass nicht mehr um neue Elemente erweitert wird, aber die Funktionalität dieser Elemente häufig...
Forum: Object-Pascal / Delphi-Language
Delphi
by hansmaad,
15. Jul 2010
Also danke für deine Mühen, aber 1. versteh ich nicht alles und 2. hat das denke ich nicht mehr viel mit Visitor zu tun.
procedure Visit(b : Base);
und eine Typunterscheidung in if else, switch case oder Zugriff über die gemeinsame Schnittstelle ist keine Alternative. Dafür brauche ich keinen Visitor.
Da kann ich auch direkt
for base in Liste do
begin
if base is Dies : Tu dies
if...
Forum: Object-Pascal / Delphi-Language
Delphi
by hansmaad,
15. Jul 2010
grrr...
Schiff = class(Fahrzeug)
public
// ...
property Kabinen : Integer read Kabinenanzahl;
end
Auto = class(Fahrzeug)
Forum: Object-Pascal / Delphi-Language
Delphi
by hansmaad,
15. Jul 2010
Guten morgen,
ich versuche gerade meinen ersten Delphi Visitor zu schreiben und bin natürlich auf die wohl bekannten zirkulären Probleme gestoßen. Ich habe mit der Suche einige Themen gefunden, wo darüber gesprochen wird, eine Lösung aber nur erwähnt wird.
Da ich ein recht umfangreiches Composite habe, möchte ich auf keinen Fall alles in eine Datei packen. Ich wär daher daran interessiert ob...