Я относительно новичок в Objective-C, и у меня есть перечисление с соответствующим массивом описаний строк:
typedef enum {
kCoverage = 0,
kSingulation,
kPopulation,
kDownforce,
} MapTileType;
static NSString* const kMapTileTypeString[] = {
[kCoverage] = @"Coverage",
[kSingulation] = @"Singulation",
[kPopulation] = @"Population",
[kDownforce] = @"Downforce",
};
Я обнаружил, что мне действительно нужно определить поведение для "типа" фрагмента карты. Например, у меня есть поведение рендеринга плитки, которое применяется к определенному типу плитки карты.
static RenderingStrategy* const kMapTileTypeRenderingStrategy[] = {
[kCoverage] = ...,
[kSingulation] = ...,
...
};
Мне интересно, будет ли все это лучше подходить для определения класса в целях инкапсуляции. Или я бы просто использовал фабричный метод, который получает MapTileType
и возвращает RenderingStrategy
?
Я думал, что я мог бы, возможно, просто использовать делегата:
@protocol MapTileDelegate <NSObject>
-(NSString*)description;
-(void)renderBlahBlah...;
@end
Может ли кто-нибудь помочь сломать мой паралич анализа? :)