我有一个协议 P
@protocol P<NSObject>
{
-(void)foo;
@optional
-(void)bar;
}
而且我有很多课程(比如说一打)。所有这些类都实现了协议 P。其中大约一半实现了方法bar,所有 bar 实现完全相同。
分享实现的最佳方式是什么吧?
明显的想法:
1)创建一些将实现方法bar并让其他类继承它的基类。
实现起来很简单。但是,我不是这个想法的忠实粉丝。我更喜欢类层次结构来表示实体泛化/规范,而不是代码重用。
2)创建一个助手并从所有需要实现bar方法的类中调用它
行。有用。但是,如果 bar 的实现很小(在我的例子中是几行),那么我们将有比代码本身更多的开销(帮助类和从每个类中调用它)。
还有其他(更好的)方法吗?