スクリプトと呼んでいるファイルから入力を受け取るプログラムを作成しています。スクリプトには、一連の情報が含まれているだけです。将来的には、各スクリプトにさらに多くの情報を含める必要があるため、各スクリプトをバージョン番号に関連付けます。
スクリプトファイルの情報は、EntityStatePduと呼ばれる特定のクラスに完全に含めることができます(この質問では詳細は重要ではありません)。そこで、次のクラスを作ることにしました。
1)抽象クラススクリプト
2)クラスScriptV1はスクリプトを拡張します
3)クラスScriptV2はスクリプトを拡張し
ます4)..。
各スクリプトファイルをバージョン情報で開始しました。したがって、バージョン1のスクリプトは「scriptV1」で始まり、バージョン2のスクリプトは「scriptV2」で始まります。さまざまなスクリプトバージョンをスクリプトクラスに抽象化したいと思います。
したがって、理想的には、呼び出しScript.FromFile("scriptVersion1.txt")
によって有効なScriptV1オブジェクトが返され、呼び出しによって有効なScriptV1オブジェクトが返されるように、FromFileというスクリプトクラスにファクトリメソッドがScript.FromFile("scriptVersion2.txt")
必要です。このFromFile
メソッドでファイルを読み取り、ファイルの先頭を調べてバージョンを判別し、適切なScriptサブクラスをインスタンス化する必要があります。これにより、クラスのユーザーは、バージョンに関係なく、任意のスクリプトファイルを使用できるようになります。
FromFile
このファクトリメソッドをどのように記述しますか?別のクラスのデザインを提案しますか?ある種のデザインパターン?
ありがとう!