我正在寻找适合这种情况的模式。
我需要以这种方式从 HDD 处理文件。
- 加载文件
- 分析文件
- 根据分析结果验证文件
- 根据验证结果将文件导入应用程序
这个过程将来可能会改变。
我的想法是为每个文件操作(命令模式)创建命令。
- 加载文件命令:IFileCommand
- 分析文件命令:IFileCommand
- 验证文件命令:IFileCommand
- 导入文件命令:IFileCommand
代码:
public interface IFileCommand
{
FileCommandResult Execute();
void Abort();
}
public class FileCommandResult
{
FileInfo File{get;}
bool Sucesss{get;}
string Error{get;}
}
我需要使用命令创建进程(命令链)。
我尝试为此目的使用责任链模式,但可能存在更好的模式或设计。
如果可能的话,我想使用 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);
有任何想法吗。