2011-07-12 45 views
1

我是比較新的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 

有人可以幫我打破分析癱瘓? :)

回答

1

不知道更多,還有一些聽起來像他們可能是有意義的兩種方法:

  1. 打開MapTileTypes爲實現你要找的定製行爲MapTile的子類。

  2. 創建一個MapTileBehavior類或沿着這些行的東西,並有該類的實例代替您的MapTileTypes值。

+0

足夠好開始...... thx! –