Gutes API-Design / Design-Pattern gesucht

  • Gutes API-Design / Design-Pattern gesucht

    Hat jemand für mich einen Link zu einem guten Artikel über das Design einer API für eine DLL in C++? Oder allgemein über Pattern in C++?
    Ich verwende eigentlich folgendes Pattern:

    Quellcode

    1. // Foo.h:
    2. class foo
    3. {
    4. public:
    5. virtual int bar() = 0;
    6. };
    7. // FooImpl.h:
    8. class fooImpl : public foo
    9. {
    10. public:
    11. virtual int bar(){ return 0; }
    12. };
    13. class Factory
    14. {
    15. foo* createFoo() { return new FooImpl.h; }
    16. };
    Alles anzeigen

    Wobei die Factory auch erst durch eine pure Virtual Klasse defniert wird.
    Diese Pattern verwende ich momentan.
    Ich könnte ja natürlich auch jede Klasse aus der DLL exportieren, aber da hab ich halt das Problem, dass ich dann wieder mit nem haufen #ifdefs kämpfen muss, weil ich meine Programme immer für Win und Linux schreibe. Ich nutze zwar wo es geht XPLatform-SDKs aber das ist nicht immer möglich, oder es benötigt für best. Platformen einfach einige Änderungen.
    So schreibe ich für jede Platform eine Implementation wenn nötig und gut ist. Ausserdem muss ich so nichts aus der DLL exportieren ausser der Factory.
    Für diese Problematik suche ich nun ein Pattern, wo ich mehr mit Referenzen arbeiten kann, da diese sicherer sind. Mir hat mal jemand das Stichwort "RAII" an den Kopf geworfen, aber damit finde ich nicht wirklich was...
    MfG
    Sometimes it pays to stay in bed in Monday, rather than spending the rest of the week debugging Monday's code. ~Dan Salomon