目标c

时间:2019-01-05 02:16:31

标签: objective-c objective-c++

我需要实现两个接口GLViewMetalView

  • GLViewNSOpenGLView的子类(又是NSView的子类)。
  • MetalViewNSView的直接子类。

大多数实现在GLViewMetalView之间共享,我显然不想复制粘贴该实现。 在c ++中,我将有一个模板类BaseViewImpl,它将使用模板参数BaseView,并且我将BaseViewImpl<NSOpenGLView>用作GLViewBaseViewImpl<NSView>的基类的基础 MetalView

如何在目标c中实现相同目标?

1 个答案:

答案 0 :(得分:0)

最直接的方法是将通用代码放入其自己的对象中,并使GLViewMetalView各自拥有该对象的实例。您可以创建两个视图都实现的协议,以为其提供相同的接口。在内部,他们会将通用请求传递到他们拥有的对象上。