是否有一个进程通信参数推荐的设计模式? [关闭](Is there a recommended

2019-09-16 22:48发布

我交了很多类的信号处理通路。 每个处理类是更小的类,其中的每一个都有自己的参数的组合物。

到现在为止,我一直懒惰和存储所有的处理参数在一个单独的参数类。 我做了这个一个friend所有的处理类的,因此他们可能只是直接访问其数据成员。 然而,这使得用于各个块和参数类间非常强耦合,使得设计完全不灵活。

我重新设计的代码,使得每个小进程拥有它自己的私有数据成员,它以需要的功能,以减少耦合。 但是,现在,如果一组新的参数加载,我需要将所有在每个单独的处理块的参数(使用存取器函数)的复合体的方法。 此方法中的命令将被强烈地耦合至过程。 如何最大限度地减少这种耦合?

Answer 1:

我建议类似的东西的背景模式 。 在建设你的过程中,与上下文对象或对象加载它们(你可以有各种处理各种情况)。 然后让每个进程,以请求和检索从给定的上下文对象所需的参数。 这样一来,你的一举一动完全设定工艺参数,这些进程的责任。 换句话说,进程知道它需要什么参数,所以过程可以从给定的上下文对象请求他们,并直接设置其私自储存的成员。

请注意,有背景模式的各种口味,通常这是相当灵活的概念。



Answer 2:

你可以开发或者是一般的情况下(在地图键/值)从SpecificContextBase,这将对通用于所有过程参数继承或特定背景。

该GenericContext的优点是,你没有改变它添加/删除参数,但利弊是访问每个参数的查询费用。

该SpecificContext的优点是不存在的查找成本来访问参数,但利弊是添加/删除PARAMS的修改。 至少在这个选项,你应该只需要修改特定的一个过程,应该不会影响别的具体的上下文类。



文章来源: Is there a recommended design pattern for communicating parameters with a process? [closed]