如何将两个不同的协议封装到一个api中
How to wrap two different protocols into one api?
我正在使用两个不同的协议,它们被包装成系统调用的一个类。包装器根据提供的协议类型调用适当的协议。协议A和协议B有大约90%的通用功能,但有几个重要的功能是每个协议所独有的。目前,我正在处理特定于协议的函数,它们是公共的,并使用友类。
这似乎做的伎俩,但我觉得必须有一个方法来处理这些类型的问题在一个更好的方式。我是自学的,所以在这些方面我缺乏知识。处理这类问题的设计模式是什么?
- 创建一个抽象类(即至少有一个虚函数= 0),实现该类中的常用函数
- 为协议A和B继承这个类,实现不同的功能。
- (可选)创建一个工厂类,根据你给它的enum返回协议a或协议B的unique_ptr。
相关文章:
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 如何封装一个函数,以便它只能由同一类中的一个其他函数调用?
- lambda[=] 上的复制值被另一个封装的 lambda[&] 阻止
- C++编译器在封装行为上存在分歧 - 哪一个做对了?
- 在 C++ 中将一个类的多个对象封装在另一个类中
- 当一个对象的死亡使另一个对象生病时,如何保持封装
- 我应该用什么来创建一个QGraphicsView覆盖,它将QMimeData封装在Qt和C++中
- 我是否应该将最后一个“返回”语句封装为“else { return .. }',如果它在逻辑上是可选的
- 当使用另一个函数封装 printf 和 vfprintf 时,这种差异的原因是什么?
- 执行一个新的完全独立的进程,该进程封装在一个可执行文件中,而不需要为独立进程将文件写入磁盘
- 将两个C++类封装到一个具有性能注意事项的高级类中
- 我应该通过引用、值或ptr来存储一个完全封装的成员吗
- C++/boost:声明一个封装的shared_array
- 使用SWIG封装c++类以在Lua中使用它-需要一个简单的例子
- 当封装到类中时,Pthread只使用一个线程
- 封装一个c风格的缓冲区
- 如何将两个不同的协议封装到一个api中
- 如何发送一个封装在类中的回调函数的指针
- 如何用SWIG为一个矩阵类创建一个封装器到Numpy
- 我该如何在C++中封装一个供一般客户使用的合并排序程序