Interfaces



  • Hi Volkz!

    Bei vielen Frameworks (so Irrlicht oder Direct3D) sehe ich, dass diese Interfaces nutzen. Was ein Interface ist, ist mir schon klar, was ich mich aber frage ist, welchen Nutzen man aus Interfaces ziehen kann? Welchen Vorteil habe ich durch Interfaces? Ist es nicht eher so dass diese mein Programm nurnoch verlangsammen, da ich für jeden Methodenaufruf nun über einen weiteren Zeiger gehen muss, wegen dem Virtual?



  • Potatoman schrieb:

    Was ein Interface ist, ist mir schon klar, was ich mich aber frage ist, welchen Nutzen man aus Interfaces ziehen kann?

    Abstraktion. Du kannst mehrere unterschiedliche Typen, die sich eine Eigenschaft oder ein Verhalten teilen, gemeinsam ansprechen.

    Potatoman schrieb:

    Ist es nicht eher so dass diese mein Programm nurnoch verlangsammen, da ich für jeden Methodenaufruf nun über einen weiteren Zeiger gehen muss, wegen dem Virtual?

    Virtuelle Funktionen sind nicht per se langsam. Die Alternative wären Funktionszeiger oder eine explizite Typunterscheidung durch If oder Switch, was ebenfalls Zeit braucht.



  • Wenn du in deinem Code eine createButton-Funktion aufrufst, die dir ein IButton* zurück liefert, kannst du einfach die DLL der Implementierung austauschen (wenn z.B. ein Fehler behoben wird). Dein Programm muss nicht neu übersetzt werden. Oder die Funktion liefert dir einen Windows-XP- oder Windows-7-Button, je nach dem auf welchem Betriebssystem das Programm läuft.


Anmelden zum Antworten