>>488-489
C++だとインスタンスの生成と解放の部分が悩みの種だよね('A`)
やっぱ最近の言語はGCとか付いてるし、言語仕様も高度だから便利だわ。
C++だとコンストラクタでvirtualメソッドが呼べないとか、そういう細かいところで使いづらいことがある。

うーん、あとプラットフォームの隠蔽、インクルードする必要もないっていう話はわかる。
漏れが言いたかったクラス設計の話は↓みたいなかんじかな。
Button = new Button()
       ┗委譲→ ButtonImpl
               ┗ ButtonFactory
                   ┣ Win32ButtonImpl
                   ┣ XButtonImpl
                   ┗ OsaskButtonImpl

違ったらすまんのだけど、>>428の設計だと↓のような設計だと思う。
Button = ButtonFactory->createButton()
        ┣ WIN32_Button
        ┃   ┗ WIN32_WindowImp
        ┣ X_Button
        ┃   ┗ X_WindowImp
        ┗ Osask_Button
            ┗ Osask_WindowImp
これだと、ひとつのプラットフォームを対応するのに2つづつクラスが増えてしまうんじゃないかな。
上のクラス設計だとXxxxButtonImplをひとつ増やすだけになるし。
まあ、これは個人の好みの問題だと思うけど。

あとファクトリークラスで提供するのって、利用者がなんじゃこりゃとか思わないかな。
少なくとも俺はなんかなぁ。Button::newInstance()とかならいいんだけど。
まあ、これも個人の好みの問題だと思うけど。