首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >采集累加器(软件设计)

采集累加器(软件设计)
EN

Stack Overflow用户
提问于 2012-04-20 04:25:32
回答 2查看 153关注 0票数 1

我需要一些软件设计方面的帮助。假设我有一个相机,它获取数据,将它们发送到过滤器,并一次显示一个图像。

现在,我想要的是等待两个图像,然后将这两个图像发送到过滤器,并将它们都显示在屏幕上。

我想到了两个选项,我想知道该选择哪一个:在我的Acquisitioner (或其他什么)类中,我是否应该在将两个图像发送到Filterer类之前放置一个等待两个图像的队列?我应该把一个累加器类放在Acquisitionner和Filterer之间吗?

两个都可以,但是你认为哪一个更好呢?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2012-04-20 04:36:04

为了给出一个直接的答案,我将在一个单独的对象中实现累加器策略。原因如下:

在过去从事类似设计的工作中,我发现将此模型中的不同“参与者”视为源和汇非常有帮助。源对象将能够产生图像或将图像输出到附加的接收器对象。这个系统中的过滤器或累加器将被设计为管道--换句话说,它们将实现接收器和源的接口。一旦你想出了一种连接泛型源、管道和接收器的机制,就很容易将累加策略实现为管道,对于接收到的每个nth图像,如果n是奇数,它将保持它;如果n是偶数,则输出这两个图像。

一旦有了这个系统,您就可以轻松地更换源文件(图像文件阅读器、电影解码器、相机捕获接口)、接收器(图像文件或电影编码器、显示查看器等)和管道(过滤器、累加器、编码器、多路复用器),而不会中断其余代码。

票数 1
EN

Stack Overflow用户

发布于 2012-04-20 04:32:44

那得看情况。但是,如果你的队列所做的就是等待第二个图像的到来,我想你可以简单地在Acquisitioner中实现它。

另一方面,如果你想在那里加入任何额外的功能,那么增加模块性和所有与之相伴而来的好处都不会有一丁点伤害。

我认为在这个特殊的情况下,这并不重要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10236173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档