私はプロトコルPを持っています
@protocol P<NSObject>
{
-(void)foo;
@optional
-(void)bar;
}
そして、私にはたくさんのクラスがあります(ダースとしましょう)。これらのクラスはすべてプロトコル P を実装しています。それらの約半分はメソッドbarを実装しており、bar の実装はすべてまったく同じです。
barの実装を共有する最良の方法は何ですか?
明白なアイデア:
1) メソッド bar を実装するいくつかの基本クラスを作成し、他のクラスがそれを継承できるようにします。
実装は簡単です。ただし、私はこのアイデアの大ファンではありません。コードの再利用よりも、エンティティの一般化/仕様を表すクラス階層を好みます。
2) ヘルパーを作成し、bar メソッドを実装する必要があるすべてのクラスから呼び出す
Ok。できます。ただし、バーの実装が小さい場合 (私の場合は数行)、コード自体よりも多くのオーバーヘッド (ヘルパー クラスと各クラスからの呼び出し) が発生します。
他の(より良い)方法はありますか?