具有不同接口的C ++适配器,其中接口可能具有不同类型/数量的输入参数

时间:2013-05-31 01:07:28

标签: c++ adapter

当适配器的方法看起来与名称相同时,知道如何构建适配器。

例如,

http://sourcemaking.com/design_patterns/adapter/cpp/2

其中“doThis”,“doThat”和“doOther”都没有输入。但是,如果不同的方法有不同数量的输入参数怎么办?

由于

1 个答案:

答案 0 :(得分:1)

链接文档中给出的示例描述了在变化纯粹是语法的情况下使用适配器模式。您的问题隐含的情况包含语义更改,即适配器方法不提供与适配器接口“承诺”正式提供的完全相同的服务。这意味着适配器必须以某种方式包装而不仅仅是简单的名称更改:必须围绕它进行一些工作来构建缺少的参数或将现有参数转换为适配器所需的参数。

如果每个新的适配器有不同的要求,那么每个适配器必须包含ad-hoc适配代码。在这种情况下,没有多少人能够分解出一个共同的模式。唯一容易的情况是简单的情况,当所有需要的参数独立于传递的参数时,并且可以在构造适配器之前为所有参数计算一次,因此允许适配器作为简单的std::bind等效。