我正在编写的库中有几个 C++ 中的“强相互依赖”类。第一个类是“DataSet”,和它的名字一样,管理数据。第二个类是“Renderer”,在 DataSet 中绘制数据。这两个类都是抽象的。这是我想要的两个类之间的“流程”:
应用程序创建已实现的 DataSet 对象 (DataSetImpA,B,C) 并将它们传递给已实现的渲染器 (RendererImp)。
应用程序告诉渲染器它的相机指向哪里。
渲染器使用相机参数在每个 DataSet 上调用私有“更新”方法,以便 DataSet 准备所有相关对象。
渲染器调用私有的“get”方法来检索新准备的对象。
Renderer 偶尔会调用私有的“clear”方法来销毁 DataSet 的对象。
'update'、'get' 和 'clear' 方法将是 DataSet 中的纯虚函数。朋友类在这里不起作用,因为我希望实现对使用 lib 的人是开放和可扩展的;当'class x'根据要使用的实现而变化时,期望有人写“friend class x”是不好的。
有人可以建议一种方法/设计模式来实现上述内容吗?随意提出不同的做事方式