このシナリオに適したパターンを探しています。
このようにHDDからファイルを処理する必要があります。
- ファイルをロード
- ファイルを分析する
- 分析結果に基づいてファイルを検証する
- 検証結果に基づいてアプリにファイルをインポートする
このプロセスは将来変更される可能性があります。
私の考えは、ファイルアクションごとにコマンドを作成することです(コマンドパターン)。
- LoadFileCommand : IFileCommand
- AnalyzeFileCommand : IFileCommand
- ValidateFileCommand : IFileCommand
- ImportFileCommand: IFileCommand
コード:
public interface IFileCommand
{
FileCommandResult Execute();
void Abort();
}
public class FileCommandResult
{
FileInfo File{get;}
bool Sucesss{get;}
string Error{get;}
}
コマンドでプロセスを作成する必要があります(コマンドでチェーン)。
この目的のために Chain of resposibility パターンを使用しようとしましたが、より良いパターンまたはデザインが存在する可能性があります。
可能であれば、Rx を使用したいと思います。並列実行もいいでしょう。
私はこれを達成したいと思います:
var data = new List<FileInfo>();
var process = new List<IFileCommand>{new LoadFileCommand(), new AnalyzeFileCommand(), new ValidateFileCommand(), new ImportFileCommand()};
var processor = new FileProcessor();
IEnumerable<IFileCommandResult> results = processor.Execute(process, data);
何か案は。