Some design concepts that i have used.

Pimpl Idiom:

Observer pattern:

Abstract Factory:

Exception Dispatcher:

[sourcecode language=”cpp”]  void handleException() { try { throw; } catch (MyException& e) {

} catch (YourException& e) {

} }

void f() { try {

} catch (…) { handleException(); } }

[/sourcecode]