これらのメソッドがあるとしましょう:
+(CCSprite *)a {
return [self shapeFromRect:CGRectMake(0, 224, 224, 288) rotate:0];
}
+(CCSprite *)b {
return [self shapeFromRect:CGRectMake(0, 224, 224, 288) rotate:0];
}
+(CCSprite *)c {
return [self shapeFromRect:CGRectMake(0, 100, 50, 50) rotate:0];
}
+(CCSprite *)d {
return [self shapeFromRect:CGRectMake(0, 100, 50, 50) rotate:90];
}
冗長性があるので、次のようにリファクタリングできます。
+(CCSprite *)a {
return [self shapeFromRect:[self abRect] rotate:0];
}
+(CCSprite *)b {
return [self shapeFromRect:[self abRect] rotate:0];
}
+(CCSprite *)c {
return [self shapeFromRect:[self cdRect] rotate:0];
}
+(CCSprite *)d {
return [self shapeFromRect:[self cdRect] rotate:90];
}
+(CGRect)abRect {
return CGRectMake(0, 224, 224, 288);
}
+(CGRect)cdRect {
return CGRectMake(0, 100, 50, 50);
}
しかし、これを行うためのより効率的な方法はありますか?
メソッド呼び出しを実行する必要がないように、これらの CGRects を typedef 列挙型またはその他の形式の定数に格納する方法はありますか?