0
假設我正在Cocoa中編寫一個類,作爲服務器的代理。爲了表示連接的當前狀態,考慮枚舉:將enum轉換爲類層次結構
enum
{
MyConnectionStatusDisconnected = 0,
MyConnectionStatusConnecting,
MyConnectionStatusConnected,
MyConnectionStatusCount
};
typedef NSUInteger MyConnectionStatus;
我可能有它活在我的代理類,像這樣:
@interface ServerProxy : NSObject
{
MyConnectionStatus connectionStatus;
}
這很好,但如果我想弄清楚用戶可讀的連接狀態解釋?我可能有這樣的靜態函數:
+(NSString*)statusStringForInt:(MyConnectionStatus)status;
在這一點上,我趕緊離開面向對象編程的境界。
將此枚舉重構爲類層次結構的最佳方法是什麼?
請參閱。這是相同的答案。 –
Ken
2009-08-28 03:39:38
這不是一回事。答案也與我的問題相同。問題是如何將它變成一個乾淨的層次結構。 – 2009-08-28 04:02:06
我以爲你是在一個方法返回一個類與枚舉相同的類。如果您要求徹底擺脫枚舉來支持類層次結構,我認爲人們需要更多細節。目前還不清楚使用類的障礙是什麼。 – Ken 2009-08-28 19:39:17