1

このシナリオに適したパターンを探しています。

このようにHDDからファイルを処理する必要があります。

  1. ファイルをロード
  2. ファイルを分析する
  3. 分析結果に基づいてファイルを検証する
  4. 検証結果に基づいてアプリにファイルをインポートする

このプロセスは将来変更される可能性があります。

私の考えは、ファイルアクションごとにコマンドを作成することです(コマンドパターン)。

  • 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);

何か案は。

4

1 に答える 1