【GoF】デザインパターン5
■ このスレッドは過去ログ倉庫に格納されています
0490476
2005/07/06(水) 20:07:58C++だとインスタンスの生成と解放の部分が悩みの種だよね('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()とかならいいんだけど。
まあ、これも個人の好みの問題だと思うけど。
■ このスレッドは過去ログ倉庫に格納されています