【问题标题】:Select baseclass type at runtime like templates在运行时选择基类类型,如模板
【发布时间】:2011-01-28 07:12:47
【问题描述】:

我有一个组件用作许多更复杂组件的基类。
目前这个基础继承自 UIScrollView。

我现在想要的是拥有一个具有 99% 相同功能的替代基本视图,但它将继承自 UIView。 在 C++ 中,我很可能会使用模板来完成此操作,但如何在 Objective-C 中完成呢?

示例:

                |-- ComplexDerivedClass_1
                |
BaseClass  -----|-- ComplexDerivedClass_2    |-- EvenMoreComplexDerived_1
                |                            |
                |-- ComplexDerivedClass_3 ---|-- EvenMoreComplexDerived_2 
                                             |
                                             |-- EvenMoreComplexDerived_3

我的目标是BaseClass 可以从UIViewUIScrollView 继承,这将在运行时决定(无需为 UIView 类型基或 UIScrollView 类型基创建每个派生类的特殊实现)。

一个解决方案当然是让基类继承自UIView,如果需要,在运行时再添加一个UIScrollView,但我想知道是否可以不这样做。

【问题讨论】:

    标签: objective-c class-design


    【解决方案1】:

    您看过协议吗?我对 c++ 不是很好,但我认为这是最接近的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      • 2015-07-25
      相关资源
      最近更新 更多