从两个类继承

问题描述

| 我正在创建一个通用的iOS应用,即它将在iPhone和iPad上运行。我现在有一个“ 0”,将同时显示在两者上,但有所不同。在iPhone上,它将包含
UITableView
,在iPad上将包含
AqgridView
。数据将是相同的。因此,两个控制器将共享许多方法和实例变量。 通常,我会使用方法和实例变量创建一个
UIViewController
子类,然后创建该类的两个子类,并在其中放置特定于设备的内容。 我现在面临的问题是,我的子类的iPhone版本也应该使用一些不错的方法从另一个类继承:
            UIViewController sublcass                   Some Other Class
                        |                                      |
            -------------------------------    -----------------
            |                             |    |
      iPad sublcass                 iPhone subclass
无法将iPad版本作为ѭ5的子类添加,因为
Some Other Class
被设计为与ѭ1一起使用。 我很确定这在Objective-C中是不可能的,但是我想问一遍,然后再创建一个巨大的复制粘贴粘贴混乱。因此:关于如何使我的代码保持简单的任何建议?     

解决方法

        是的,在目标C中不可能实现多重继承。但是,通过简洁而合理的设计,这是不必要的,可以用协议代替。但是,如果不是这种情况(但是,对此我有一些疑问),建议您检查装饰器的设计模式。 即使装饰器模式无法满足您的需求,我还是建议您使用聚合而不是继承(嗯,这就是装饰器实际使用的)。