如何将两个不同的协议封装到一个api中

How to wrap two different protocols into one api?

本文关键字:封装 一个 api 协议 两个      更新时间:2023-10-16

我正在使用两个不同的协议,它们被包装成系统调用的一个类。包装器根据提供的协议类型调用适当的协议。协议A和协议B有大约90%的通用功能,但有几个重要的功能是每个协议所独有的。目前,我正在处理特定于协议的函数,它们是公共的,并使用友类。

这似乎做的伎俩,但我觉得必须有一个方法来处理这些类型的问题在一个更好的方式。我是自学的,所以在这些方面我缺乏知识。处理这类问题的设计模式是什么?

  1. 创建一个抽象类(即至少有一个虚函数= 0),实现该类中的常用函数
  2. 为协议A和B继承这个类,实现不同的功能。
  3. (可选)创建一个工厂类,根据你给它的enum返回协议a或协议B的unique_ptr。
相关文章: