如何将两个不同的协议包装成一个api?

时间:2014-08-08 17:19:04

标签: c++ design-patterns

我正在处理两个不同的协议,这些协议被包装到系统调用的一个类中。包装器根据提供的协议类型调用适当的协议。 协议A和B具有大约90%的常用功能,但是每个协议都有几个重要的功能。目前我正在处理公共协议特定的功能并使用友元类。

这似乎可以解决问题,但我觉得必须有一种方法可以更好地处理这些类型的问题。我是自学成才,所以我缺乏这方面的知识。什么是设计模式来处理这些类型的问题?

1 个答案:

答案 0 :(得分:2)

  1. 创建一个抽象类(即至少一个虚函数= 0),实现此类中的常用函数。
  2. 为协议A和B继承此类,并实现不同的功能。
  3. (可选)创建一个工厂类,它返回协议A或协议B的unique_ptr,具体取决于您提供的枚举。