2012-05-09 18 views
0

私はスクリプトと呼ばれるファイルから入力を受け取るプログラムを作っています。スクリプトには単に一連の情報が含まれています。将来は、より多くの情報を入れるために各スクリプトが必要になるので、私は各スクリプトにバージョン番号を関連づけています。ファイルからサブクラスを読む

スクリプトファイル内の情報は、EntityStatePduと呼ばれる特定のクラスに完全に含めることができます(詳細はこの質問では重要ではありません)。私はそれぞれの作っ

...))クラスScriptV2スクリプト
4を拡張するクラスScriptV1スクリプト
3を拡張する)スクリプト
2)

1抽象クラスを:だから、私は、以下のクラスを作ることにしましたスクリプトファイルはバージョン情報で始まります。したがって、バージョン1のスクリプトは「scriptV1」で始まり、バージョン2のスクリプトは「scriptV2」で始まります。さまざまなスクリプトバージョンをスクリプトクラスに抽象化したいと思います。

したがって、Script.FromFile("scriptVersion1.txt")を呼び出して有効なScriptV1オブジェクトを返し、Script.FromFile("scriptVersion2.txt")を呼び出すと有効なScriptV1オブジェクトが返されるように、FromFileというScriptクラスにファクトリメソッドを追加したいと考えています。 FromFileメソッドでファイルを読み込み、そのファイルの開始点を確認してバージョンを判断し、適切なScriptサブクラスをインスタンス化します。これにより、クラスのユーザーはバージョンに関係なくスクリプトファイルを使用できます。

これを書くにはどうすればいいですか?FromFile工場の方法は?あなたは別のクラスデザインを提案しますか?デザインパターンのいくつかの並べ替え?

ありがとうございました!

答えて

0

静的変数をScriptクラスに追加して、文字列(「scriptV1」など)から適切なクラスのインスタンスにマップを格納します。 FromFileメソッドでは、文字列を抽出し、マップで検索し、インスタンスをクローンして返します。初期化段階として、サブクラスはマップのインスタンスを適切な文字列の下に登録する必要があります。

関連する問題