デザインパターンを参考に、ウィンドウシステムのフレームワークを作ってみました。

たとえば
Button の派生で WIN32_Button, X_Button を作り、
WindowFactory::createButton でこれらを生成します。

このウィンドウをそのまま使う分にはいいのですが、
アプリ内のコードで Button を継承したボタンを作りたいときに
WIN32_Button または X_Button のクラスを直接継承しなければならなく、
プラットフォームを意識したコードになってしまいます。
この問題を解決するためにはどうすればいいでしょうか。

一応、Strategy的にイベントをフックできるようにしてるので
継承しなくても多くのことはできるのですが、
メソッドのオーバーライドをしたいときは、やはり継承したほうがいいように感じます。