在Obj-C中重用不同类中的代码的最佳方法是什么?

时间:2009-08-19 15:50:09

标签: iphone oop

我有多个类(控制器)彼此共享大量代码。我该如何分解出这段代码呢?代码是属于协议的一些方法。换句话说,我的所有控制器在此协议方面的行为方式相同。我不能使它们成为同一父类的子类,因为它们已经是某些不同控制器的子类。

4 个答案:

答案 0 :(得分:3)

使用聚合:)构建一个符合协议的可重用类,并委托给它。

答案 1 :(得分:1)

创建一个抽象超类,所有通用控制器类都从该超类继承。抽象超级可以实现所需的协议,相对通用或非常具体的子或子子类可以覆盖。

考虑iPhone SDK中的各种视图/响应者。

UIResponder课程提供事件处理。

UIView子类,用于添加绘图功能。

UIControl子类UIView添加各种控件,如行为。

然后是UIButton,UITextField,UISlider等...所有这些都是UIControl的子类,以添加它们的特定功能。

如果仔细观察,NSCoding(和NSObject)协议被声明为层次结构中的各种类所支持,并且根据需要覆盖更具体的子类。

答案 2 :(得分:1)

将类别添加到公共超类(如有必要,为NSObject)。

答案 3 :(得分:0)

你可以让多重继承排序,让它们从一些实现协议的超类“继承”... http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtForwarding.html谈论它