瘦与厚适配器(包装)示例

时间:2011-02-11 08:47:25

标签: c++ design-patterns definition

我找不到关于瘦适配器和厚适配器有什么区别的任何信息。如果有人可以提供描述,我会很感激,接着是一个简单的例子(请注意,该示例不需要在C ++中)。

提前致谢。

编辑:我对此的看法类似于class adapter pattern,需要进行最少的更改才能符合预期的界面。

1 个答案:

答案 0 :(得分:1)

这很简单。

例如,假设您希望在代码中使用the stat function,但您希望能够对代码进行单元测试,甚至更改在运行时使用的函数。然后你会添加一个基类:

struct FunctionApiBase
{
 virtual ~FunctionApiBase{}

 virtual int stat(const char *path, struct stat *buf) = 0;
};

实施它:

struct RealFunctionApi : public FunctionApiBase
{
  virtual int stat(const char *path, struct stat *buf)
  {
    ::stat( path, buf );
  }
};

然后创建RealFunctionApi类型的对象并在其上调用stat,而不是真实函数。

如果我理解链接中的文本,那么厚适配器只会有更复杂的代码。