Zitat von
negaH:
Hm, wenn ich dich richtig verstanden habe, heist das
1.) die Interfaces in der EXE liegen, statt der
DLL
Meinem Programm muss das Interface bekannt sein, damit ich damit arbeiten kann. Zumindest nehme ich das stark an. In der
DLL muss auch das Interface verwendet werden. Die Klasse TCipher und ihre Nachfahren sind nur optional. Man kann es auch komplett ohne diese machen, also nur mit der vorliegenden Interface Deklaration, aber dann müsste ich in jede meiner 3 DLLs die ganzen Get und Set Methoden nochmals hinschreiben, bzw. kopieren. Ja gut, dass ist kein Akt, aber ich hatte früher alles auf TCipher basierend, die wurde früher auch in der
DLL anstatt ICipher zurückgegeben (in der exportierten Prozedur der
DLL)
Zitat:
2.) die Interfaces über die "virtual abstract" methoden in die
DLL einlinken
Wie gesagt: Kann man via TCipher machen, muss man aber nicht.
3.) die Datentypen der ICipher auf denen sie verschlüsseln, eben Delphi abhängig sind, zB. TStream, LongString usw.
Ja da hast du natürlich recht. Das mit den Strings hätte man im Notfall auch noch PChar machen können, aber das mit TStream in anderen Sprache wäre ja ein Spass geworden...
Ich weiß nich so recht ob das ein gutes Design ist !?
Ich hatte mein Verschlüsselungsprogramm am Anfang komplett ohne Plugins geplant. So langsam ging es dann in die Richtung, aber ich immer nur so weit gedacht, dass die Plugins nur auf mein Programm und meine Umgebung zu geschnitten sind. Das hier war schon der erste Schritt in Richtung flexibilität, aber immer noch nicht ganz.
Deine Idee bzw. dein "Denk"-Konzept hört sich auf jedenfall interessant an, soweit ich es verstanden habe.
Soweit habe ich das verstanden:
- Die Alogrithmen sind intern in der Library und werden mit Interfaces gekapselt. Sie bieten aber nur die
Grundfunktionen des Algoritmus. (bei dem Hash jetzt .Init, .Calc und .Done)
- Das IDEC Interface dient sozusagen als Wrapper für die Algorithmen und ermöglicht den Zugriff...
- ... mit dem IDECStreams.
Nun kommt der Rest den ich nicht ganz verstanden habe:
- Der User muss Teiles der Stream Interfaces kapseln, bzw. sie sind schon vorgefertigt. Wie sieht nun ein solches Stream Interface aus?
- Wie kann das IDEC Interface mit dem IDECStreams arbeiten?
mfG
mirage228
David F.