キックオフ-オリエンテーションにはいわゆる"クラスのクラスター"をObjective-C?

StackOverflow https://stackoverflow.com/questions/1844158

質問

ってそれを読んでいたんNSArrayはどうやればいいのでしょうかいことです。音す。私は7本当に脂肪図書このマスクーター/モーペットレンタルObjective-CコC.なにしろクラスのクラスターされており、少なくとも思っているようで、インデックスの奥ます。ではどうだ?

他のヒント

どうなるかはわからないが、CDPアから参照できると思いますが、基本的にはObjective-Cクラスクラスターが構築支援の実施概要 工場 パターンです。

考え 簡単:きせていただきたいと考え工場(クラスター)インターフェイスは、最小の説明、製造を返します特定のコンクリートのインスタンスは工場オブジェクトに満足の行動のクラスター家族の工場(クラスター)インターフェース。

簡単なコンクリートの例:この例を提供笑工場を生成するコンクリートの授業の特定の笑いの種類(例:Guffaw,笑).に注意を払う 笑initWithLaughter: 方法。

です。h:

#define kLaughWithGuffaw  1
#define kLaughWithGiggle  2

@interface Laugh: NSObject {}
- (Laugh *) initWithLaughter:(NSUInteger) laughterType;
- (void) laugh;
@end

です。m:

@interface Guffaws:Laugh {}
- (void) laugh;
@end

@interface Giggles:Laugh {}
- (void) laugh;
@end

@implementation Laugh
- (Laugh *) initWithLaughter:(NSUInteger) laugherType {
    id instanceReturn=nil;
    ; // Removed for ARC [self release]
    if ( laughterType == kLaughWithGuffaw )
        instanceReturn = [[Guffaws alloc]init];
    else if( laughterType == kLaughWithGiggle )
        instanceReturn = [[Giggles alloc]init];
    else
        ; // deal with this
    return instanceReturn;
}

- (void) laugh {
    NSLog(@"Humbug");
}
@end

@implementation Guffaws
    - (void) laugh {
        NSLog(@"OH HA HA HOWAH HA HA HA");
    }
@end

@implementation Giggles
    - (void) laugh {
        NSLog(@"Tee hee");
    }
@end

用語集のページ498のスティーブンKochanによる客観Cでのプログラミングから、クラスタます:

  

そのグループのセット抽象クラス   提供するプライベート具象サブクラス、   ユーザに簡略化されたインターフェース   抽象クラスを通じてます。

クラスのクラスターを単一の公開インターフェースグループのコンクリート、民間のサブクラスの実装方法です。目的-cプログラマ用クラスのクラスターがほとんどを実現し、これは全てのクラスのクラスタークラスのクラスターの仕事は非表示にする複雑さの実装の詳細後の公的インタフェース。

多くの授業のクラスのクラスターなどのNSString,NSArray,NSDictionary、NSNumber.をご利用いただきます [NSString stringWithFormat:] クラスのクラスターはお一部のコンクリートを実装するクラス NSString インタフェース。でき NSConcreteString, NSCFString, NSFooBarString, など。のクラスのクラスターでは、コンストラクタは初期化子ま呼び出しの引数になります。

このため、クラスのクラスター最強の概念Objective-Cプログラミング

  • 非常に容易にします
  • を変えるのも簡単では基本となる実装を変えずにコードを呼び出す
  • や提供の異なるコンクリート実装は実行時(試験や模擬オブジェクト)
  • その上、試験、refactor

多くの場合その他の言語でのみなさんの暴。クラスのクラスターについて双方の要素の概要工場のファサードパターン

アップルのコンサルティングカバーにクラスのクラスターや実装方法に拡張しかくことがわかった。残念ながら、思った多くのiOS開発者は、ココア-特定のパターンは死角があります。

ココアコアコンピタンス:クラスのクラスター

ココアの基礎ガイド:クラスのクラスター

例の実装方法に自分のクラスのクラスターは、GitHub

にNSArrayクラスクラスタは、それはあなたのコードが知っているか、特定の実装を気にすることなく使用する配列クラスの実装の任意の数の方法だ、「ヘビー級」ではありません。フードの下で、そのようなコンパイル時に知られている要素の特定の数を含む大きな、スパースアレイ、またはアレイなどの異なるユースケースに適しているにNSArrayの具象サブクラスがある。

にNSArray、NSStringの、とのNSNumberはあなたが最も頻繁に遭遇するだろうクラスクラスタはあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top