2012-12-04 19 views
1

我正在为Objective C做这件事,但这是各种常见语言中的常见行为。静态变量和方法的继承模型

我知道,静态变量或方法不能被继承到子类,但是我想知道这是做以下的最佳方法:

我有几个类(如10)具有以下基本型号:

static id A 

@interface MyClass 

+ (void) doSomethingWithA; 

@end 


@implementation MyClass 
    + (void) doSomethingWithA { 
     [A doSomething]; 
     [A doOtherThing]; 
     //do more things 
    } 

@end 

的代码是完全对所有的类相同,但这些方法是静态的(我只希望有一个以每一类的一个实例),那么我不能使用子类来避免代码重复。

我真的想避免复制和粘贴这么多的代码。

这种情况下的最佳做法是什么?

+0

使用继承方便吗?考虑继承的组件方法 - 移动所有使用静态的逻辑来分离组件类并将其附加到类中。 – nikita

回答

0

为什么不使用实例方法,使用继承和您需要的所有东西,并创建静态实例(例如singleton)来调用它们?

+0

因为单例使用的是一个Static实例,如上所述,它会返回相同的问题。 – htafoya

+0

当你可以用10个方法编写10个类时,你可以有10个实例使用静态访问器,但是你不必编写代码10次,你可以使用继承。 –

+0

好吧我猜这是我能达到的最干净的解决方案。 – htafoya