最优雅的方式来实现管道和过滤模式

ben*_*ist 10 c++ design-patterns functional-programming c++11

我想创建一个基于管道和过滤器的数据处理程序,它应该像这样操纵传入的数据集,但不一定限于:

源管道(可以是来自db的数据集)<-sink-source->过滤器(添加附加字段)<-sink-source->过滤器(操作一些更多数据/删除即使数据集无效)

我知道这样的架构在C/C++中会是什么样子.但考虑到C++ 11功能方面的所有好处,我希望这个任务可以以优雅的方式完成,以便它能够:

  • 容易扩展并在多线程环境中使用它(例如,通过执行过滤任务作为lambda函数,因此可能至少避免一些线程处理)
  • 在运行时轻松添加和删除过滤器
  • 懒洋洋地处理输入流