Wenn du schon objekt orientiert programmieren kannst, dann empfehle ich
GOOP. Das kommt der OOP IMHO am nächsten, da mit Objekten gearbeitet wird (by Reference). GOOP4 kapselt die Objekte in DVRs, was das ganze auch um einiges performanter macht als mit GOOP3 Klassen.
(20.06.2012 06:34 )Y-P schrieb: [ -> ]Mein Reden.
Ich habe bisher noch keine Aufgabenstellung gefunden, bei der es notwendig gewesen wäre, LVOOP zu verwenden, bzw. die man auch sonst ohne Probleme lösen könnte.
Kleines Beispiel:
um unsere DUTs vor den Tests zu konfigurieren gibt es verschiedene Treiber. Alle Treiber besitzten eine gleiche Anzahl Methoden (lesen, schreiben, reset, uvm), besitzen aber unterschiedliche Implementierungen/benötigen unterschiedliche APIs (C++ API, .NET Treiber v3.5, .NET Treiber v4.0 u.a.). Ich könnte jetzt (so wie wir es zu Beginn hatten) so viele VIs generieren wie es Treiber-Methoden gibt und innerhalb meine dedizierten Treiber-VIs aufrufen (über Fallunterscheidung). Nur muss ich dann jedes mal wenn ein neuer Treiber hinzukommt jedes dieser VIs öffnen und eine Fallunterscheidung hinzufügen, so dass der neue Treiber benutzt wird. Das ist alles natürlich kein Problem und funktioniert auch. Die Wartbarkeit leidet zwar, aber es geht.
Oder aber ich setzte das ganze OO um:
Man schreibe sich eine Basis-Klasse, die nur die leeren Methoden zur DUT Kommunikation enthält plus ein paar zusätzliche, generische Methoden.
Die vererbt man an dedizierte Treiber Kind-Klassen und dort drin implementiert man die explizite Kommunikation. Zur Laufzeit wird dann die Kind-Klasse instanziert, für die gerade ein Test läuft.
So weit so gut. Bis hier hin hat man sich ohne Frage mehr Arbeit aufgehalst.
Kommt jetzt aber ein weiterer Treiber hinzu, müssen die Methoden zur Kommunikation geschrieben werden (was auch im klassischen Ansatz gemacht werden muss). Nur muss ich jetzt an nur genau einer Stelle im bestehenden Code eine Anpassung vornehmen, um den neuen Treiber einzubinden!
(20.06.2012 08:23 )Y-P schrieb: [ -> ]Eher z.B. der Vergleich ob man MySQL oder PostgreSQL nimmt.
Dieser Vergleich passt so auch nicht ganz: MySQL oder PostgreSQL (was ich nicht kenne) sind beides Datenbanken und beide werden über irgendwelche Queries abgefragt, nur die Syntax wird verschieden sein.
Der Vergleich OOP <-> Assembler passt vielleicht auch nicht ganz, da ein Programmierkonzept mit einem Abstaktionsgrad verglichen wird.