Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
26. Dez 2014
Zum einen muss man ja auch nicht nur einen Konstruktor haben und zum anderen kann man auch eine Factory nehmen.
Für eine minimalistische Queue brauchst du z.B. nur 2 Parameter, dann erstell dir einen Konstruktor mit diesen 2 Parametern und für die superduper Gedöns-Queue benötigst du 42 Parameter, jo, dann eben noch so einen, und evtl. noch ein paar weitere.
Eine Factory hilft immer dann,...
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
26. Dez 2014
Bis auf die Tatsache, dass du eine Schreib-Lese-Queue erzeugen möchtest ist das doch alles richtig. Ich wüsste keinen Fall, wo ich in ein und derselben Queue lesen und schreiben möchte. Queues sind One-To-One Verbindungen. Eine Nachricht in einer Queue wird von einem Empfänger empfangen. Will ich an mehrere Empfänger die gleiche Nachricht senden, dann muss die Nachricht auch in mehrere Queues.
...
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
26. Dez 2014
Um nochmals die Poststelle aufzugreifen:
Die Poststelle kann ja durchaus mehrere Versandkanäle benutzen, die z.B. abhängig von Größe, Gewicht und Volumen genutzt werden. Die Mitarbeiter liefern trotzdem ihre Sachen an die Poststelle und die kümmert sich intern um die Bestimmung in welche Queu jetzt das geschoben wird.
Und der Empfang von ausserhalb geht auch durch die Poststelle und kommt...
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
26. Dez 2014
Anders herum gefragt:
Du hast da eine Poststelle wo alle ihre Post hinbringen, auf dass diese versendet wird.
Wer legt das konkrete Verhalten der Poststelle fest? Die Mitarbeiter, die ihre Post versendet haben wollen? Oder eventuell eher doch die Geschäftsleitung?
Und nochmal: Was interessiert es dich wie die Queue funktioniert (mit Transaktion oder ohne, mit Schleifchen oder Bändern,...
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
26. Dez 2014
Aber warum willst du auf die Methoden der implementierenden Klasse zurückgreifen?
Wenn du eine Nachricht verschicken willst, dann benutze das Interface und verschicke die Nachricht. Es ist Aufgabe der implementierenden Klasse sich um den gesamten konkreten Versandablauf zu kümmern, denn nur die weiß, wie man z.B. mit MSMQ sprechen muss. Ich als Versender muss doch gar nicht wissen, was da...
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
25. Dez 2014
Der grundlegende Denk-Fehler ist, dass du der Meinung bist, in der Anwendung alles Mögliche über das Interface geben zu müssen. Aber eben genau diese Implementations-spezifischen Informationen habe dort nichts verloren.
Nehmen wir mal den ganz simplen Fall, dass wir einfach nur einen Text versenden wollen. Dann sähe das interface so aus
IMy_MQ = interface
procedure Send( const AText :...
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
25. Dez 2014
Es ist doch unsinnig die Open Methode im Interface zu deklarieren. Wozu soll die gut sein?
Ich will eine Nachricht senden. Ob dafür bei MSMQ erst die Queue erst mit welchen Parametern auch immer geöffnet werden muss oder bei TrallalaMQ erst ein Purzelbaum geschlagen werden muss, das interssiert bei der konkreten Implementierung aber nicht das Interface. Das ermöglicht mir das Senden einer...
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
23. Dez 2014
Also wenn ich einen Brief versenden will, dann muss ich trotzdem nicht das Postamt öffnen, oder den Briefkasten aufschließen. Ich gehe einfach zu meinem Interface IBriefPost und sende den Brief ab mit IBriefPost.Sende( Brief);. Soll sich das Interface doch selber darum kümmern. ;)