在运行时选择基类类型,如模板

时间:2011-01-28 07:12:48

标签: objective-c class-design

我有一个组件,它被用作许多更复杂组件的基类 目前,此基础继承自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,但我想知道是否可以在没有它的情况下完成它。

1 个答案:

答案 0 :(得分:0)

你看过协议吗?我对c ++并不是那么好,但我认为这是最接近的事情。