Zitat:
hättest du das gemacht, dann wären die dir Bedenken diesbezüglich aufgefallen
und auch daß dein Vorschlag schon vorgekommen ist (allerdings mit Rückmeldung).
Tut mir Leid, dass ich anderer Meinung bin.
Auch beim erneuten Lesen, sehe ich meine Lösung NICHT vorgekommen!
Ich sehe die "Bedenken" an anderer Stelle.
OOP bedeutet in meinen Augen vor allem auch Wartbarkeit.
Und die Lösung, dass bei jeder Verwendung überprüft werden müss, um welches Object es sich denn eigentlich handelt, find ich einfach nur schrecklich.
Zitat:
Ja toll, die machen einfach so nichts und dein Programm wundert sich dann später warum was fehlt, obwohl es ja angeblich gemacht wurde.
> jedenfalls sieht es ja von außen so aus ... wenn intern nix gemacht wird und es darüber keine Rückmeldung gibt.
Was interessiert das mein Programm?
"Deine" Lösung:
Delphi-Quellcode:
if System = 'Win7' then
TWin7(winObject).machWasMitWin7();
Ohne Else-Zweig fehlt hier auch etwas!
Ansonsten kann man den Methoden einen Rückgabewert (bool) verpassen, wenn's sein muss.
Meine Lösung:
winObject.machWas();
Die Zweite hat folgenden Vorteil:
Falls ich nun möchte, dass einige Aktionen nicht nur auf Win7 sondern zusätzlich noch auf WinXP ausgeführt werden sollen, so ändere ich EINE Methode (die von TWinXP) und muss nicht alle Bedingungen suchen.
Von den dazu wegfallenden Prüfungen seh ich hier mal ab.