Ich versuche mal eine Antwort.
Das Klassendesign kann man natürlich noch wesentlich verfeinern (so z.B. eine Basisklasse TKommunikator und dann abgeleitete Klassen wie TUSBKommunikator etc.) Wie stark du das ganze verfeinern willst, musst du während der genauen Spezifikation abschätzen.
Die Hauptklasse sollte deine eigentliche Pruefung sein, auch hier könnte man entsprechend der möglichen Prüfungen das Klassenmodell weiter verfeinern. Zu einer Prüfung gehören nun einmal verschiedene Messgeräte (auch hier wieder Möglichkeiten der Verfeinerung), die entsprechenden Platinen etc. Also so ähnlich, wie du dir das wohl bereits vorgestellt hast. Ansonsten musst du natürlich beachten was der Der_Unwissende gesagt hat.
Male dir die Zusammenhänge und Beziehungen einiger existierender Prüfungen auf, dann kannst du bereits etwas abschätzen was du wirklich brauchst.
So hier mein Vorschlag:
Delphi-Quellcode:
// Kapselung der Kommunikationsarten (aller Geräte)
// Sowohl seriell und USB sollten hier implementiert werden
TKommunikator = class
...
end;
TKalibrator = class
Kommunikation : TKommunikator;
end;
TMessGeraet = Class
Kommunikation : TKommunikator;
end;
TPruefling = class
Kalibrator : TKalibrator;
end;
TPlatine = class
Kommunikation : TKommunikator;
end;
TPruefung = class
Pruefling : TPruefling;
Messgeraet : TMessGeraet;
Platine : TPlatine;
end;
TPruefung1 = class(TPruefung)
function Execute() : Boolean;
end;
Würde dann in der
GUI in etwa so aussehen:
Delphi-Quellcode:
if cbPruefung1.checked then begin
oPruef := TPruefung1.Create();
if oPruef.Execute() then Showmessage('Prüfung 1 bestanden');
oPruef.Free();
end;