デザインパターンの単純そうな質問
■ このスレッドは過去ログ倉庫に格納されています
0284デフォルトの名無しさん
NGNGファイルを読み込んで、その情報にあったインスタンスを作成したいと思っています。
ファイル名を指定して、ファイルのヘッダ部分を読み、
ヘッダ情報から生成すべきインスタンスを判別し、
具象インスタンスを作成し返す。という一連の操作をきれいにまとめたいのです。
Factory Method が良いのではないかなと思い GoF本を見たところ、
実装の2の所で「Unidrawの図形編集フレームワークでは…」という部分で
どうやら私の考えている事にぴったりの事が書かれていました。
しかし、よく読んだつもりなのですが、イマイチ理解できない部分があります。
「フレームワークはその識別子をパラメータとして Create オペレーションを呼び出す。」
という部分なのですが、
Create オペレーションは Creator::Create() でしょうか?
それとも (Some)ConcreteCreator::Create() でしょうか?
Creator の Create() だとした場合、Creator が識別子について
一元管理していないといけないので Creator を
具象クラスとして作成(Creator を一切継承しない)した方がいいのでしょうか?
それとも ConcreteCreator の Create() なのでしょうか?
だとすると 識別子から具体的な Creator を探すのはこのパターンと
関係ない所で行うのでしょうか?
(だとするとGoF本の
「Create オペレーションはその識別子に対応するクラスのコンストラクタを探して…」
という部分の説明がおかしいですよね…?)
私の勘違いしている部分に対するご指摘、そうでなくても
よくありがちなコードだと思うので、皆様の
「私の場合はこうしているよ」的なものでもよいので
教えていただけないでしょうか?
(どういう実装がいいのか↑の説明では不足 or 「お前の文章は理解不能じゃ」という場合はご指摘願えればもっと詳しく書きます)
どなたかよろしくお願いいたします。
■ このスレッドは過去ログ倉庫に格納されています