Ich bin gerade dabei eine Art "allgemeine" Client Library für mein Projekt zu entwerfen, welche mir beim schreiben möglicherweise mehrerer Clients grundlegende Aufgaben abnehmen soll. Dabei wollte ich auf das
Observer Pattern setzen.
Nun bietet das Visual Studio für C++ leider keine praktische "abstrakte Member implementieren" Funktion. Je "größer" die möglichen Listening Interfaces also werden, desto mehr wird das *wirklich* nervig alle Methoden immer wieder aufs neue zu implementieren. Zumal man nicht immer alles brauchen wird und man dann mit verdammt vielen "leeren" Methodenrümpfen umherläuft.
Ich hatte daher daran gedacht, die Listener Interfaces nicht komplett abstrakt zu machen, sondern einige "Callbacks" mit einem Methodenrumpf auszustatten. Das ganze ähnelt dann etwas mehr den "Adapter" Klassen aus Java. Also zum Beispiel so:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
|
class ConnectionListener
{
public:
virtual void connectionLost() = 0;
virtual void connectionMade() {}
};
|
1) Schlägt das irgendwie auf die Performance? Ich vermute zwar nicht, weils so oder so virtual ist, aber ich würd meinen Arsch nicht drauf verwetten.
2) Ist das überhaupt eine gute Idee bzw. bau ich damit was extrem unnormales?