私はここでいくつかのObjCソースを研究しており、コントローラーの1つにNSDictionary
「」と呼ばれるタイプのプロパティがありますoverrideClassNames
。キーとして、既存のインターフェイスのクラスが必要であり、値として、次のように既存のインターフェイスのサブクラスのクラスが必要です。
controller.overrideClassNames = @{(id)[DefaultType class] : [MySubClassedDefaultType class]};
のインスタンスDefaultType
が必要な場合は常に、辞書を検索し、インスタンスが設定されている場合は、より特殊なインスタンスを作成します。
これが実際にObjCで一般的なアプローチであるかどうかを考えていますか?C#とJavaから来て、私の考えは、のインスタンスDefaultType
が必要な場合に呼び出されるデリゲートファクトリメソッドを作成することでした。その後、クラスのユーザーは、より専門的なバージョンを返すことができます。あるいは(C#で)クラスをジェネリックにして、<T> : DefaultType, new()