我有一组服务(非WCF),它们坐在队列上。当消息到达时,典型的服务会进行一些计算,并将零个或多个结果消息输出到其输出队列。除了其主要功能外,每个服务还具有一些管理逻辑,如身份验证/审计/日志记录/状态跟踪,确切的步骤和顺序在这些服务之间略有不同。这就是管道概念的出现。
我对我们最终采用的设计不满意,正在寻找简化它的方法。我应该模仿CCR端口?ASP.NET管道?AOP?还是其他什么?
我的当前设计如下:我有一个IMessageHandler接口和大约15个实现,使用IoC以6种独特的方式链接在一起。该接口定义单个方法Handle(TMessage msg),因此每个实现都可以在将消息传递给下一个处理程序之前和之后执行一些逻辑。
问题在于:有点难记住每个实现确切地做了什么,以及为什么它们以这种特定的方式链接到这个特定的服务。另一方面,让每个方面坐在自己的类中可以更好地分离关注点,因此更容易进行单元测试。
我对我们最终采用的设计不满意,正在寻找简化它的方法。我应该模仿CCR端口?ASP.NET管道?AOP?还是其他什么?
我的当前设计如下:我有一个IMessageHandler接口和大约15个实现,使用IoC以6种独特的方式链接在一起。该接口定义单个方法Handle(TMessage msg),因此每个实现都可以在将消息传递给下一个处理程序之前和之后执行一些逻辑。
问题在于:有点难记住每个实现确切地做了什么,以及为什么它们以这种特定的方式链接到这个特定的服务。另一方面,让每个方面坐在自己的类中可以更好地分离关注点,因此更容易进行单元测试。
有什么好的流水线模式可以参考吗?有哪些不错的流水线实现可以作为参考?或者我应该JFHCI?