【GoF】デザインパターン5
■ このスレッドは過去ログ倉庫に格納されています
0482476
2005/07/06(水) 13:02:41ボタンのインスタンスをFactoryで公開するのっていうのがちょっと違和感ある。
そのFactoryは、実装がXかWindowsかを隠蔽するためのものであって、
インスタンス生成の理想のインターフェースとしては
Button* button = new Button(); っていう感じのものだと思う。
内部的に使うだけのものであればFactoryが生成のインタフェースになってもいいけど、
外部の人間に使ってもらうような汎用的なライブラリであれば、Factoryから生成させるってのは、
そのライブラリを使う人間側からすればちょっとなぁってだけなんだけどね。
まあ、今作られてるライブラリを外部に公開するのかどうかは知らんのだけど。
>factory->createButton() の返すインスタンスが WIN32_Button または X_Button で、
>これらは UserButton の継承としては実装できないのですよ。
Bridgeパターンつかって、ButtonImplみたいなのをButtonに持たせてみては?
WIN32ButtonImplとXButtonImplをつくって、ButtonからはButtonImplへ委譲するだけとか。
実装用のインターフェース(ButtonImpl)と、外部公開用のインタフェース(Button)をわければできないかな?
外部公開用と実装用をいっしょにしてしまっているからできないのだとおもう。
■ このスレッドは過去ログ倉庫に格納されています