003
28.12.2009, 17:11 Uhr
0xdeadbeef
Gott (Operator)
|
Naja, du willst ein einheitliches Interface, und da du zur Compilezeit nicht weißt, welches Backend benutzt werden wird, musst du ihm alles durchreichen, was das Backend brauchen könnte. Ich seh so spontan keine andere Möglichkeit.
Dieses spezielle Problem ist mir so noch nicht untergekommen, aber für Plugin-Architekturen ist es durchaus üblich, ebenso für die Auswahl verschiedener Backend-Klassen zur Laufzeit (das kommt eigentlich schon relativ nah an dein Problem ran), und ich habe es auch schon gelegentlich bei Signal-Handlern in alten Bibliotheken gesehen (etwa MFC). Aus Kosmetikgründen würde man MyClassLib2::foo wohl eher als
C++: |
void foo (int a, double) // unbenutztes Argument ohne Namen { use_lib2_foo(a); }
|
schreiben, damit der Compiler nicht wegen des unbenutzten Parameters warnt, aber die Technik selbst ist eigentlich recht normal. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |