何时使用常量是合适的,何时使用单个方法返回常量是合适的

时间:2012-08-08 19:33:59

标签: objective-c singleton global-variables constants software-design

所以我想说我有以下代码

部首:

#import <Foundation/Foundation.h>

FOUNDATION_EXPORT NSString* const kTHBaseUrl;

@interface THSharedObject : NSObject

+ (THSharedObject*)shared;
- (NSString*)baseUrl;

@end

实现:

#import "THSharedObject.h"

NSString* const kTHBaseURL = @"http://0.0.0.0/";

@implementation THSharedObject

static THSharedObject* shared;

+ (void)initialize
{
    static BOOL initialized = NO;
    if(!initialized) {
        initialized = YES;
        shared = [[THSharedObject alloc] init];
    }
}

+ (THSharedObject*)shared
{
    return shared;
}

- (NSString*)baseUrl
{
    return kTHBaseURL;
}

- (MyModelObject*)globalModel
{
    return instanceOfModel;
}

@end

我是否应该在.pch中包含此文件,或者是否应仅将其包含在使用共享对象的文件中。

调用kTHBaseURL常量或调用返回常量[[​​THSharedObject shared] baseUrl]的实例方法更合适吗?

将文件包含在pch中的优点和缺点是什么,而不是仅将其包含在使用它的类中。

调用返回常量的方法而不是直接调用常量有什么好处。

或者所有这些只是一个意见问题?

感谢。

1 个答案:

答案 0 :(得分:0)

您不能从类外部访问实现中的常量,除非常量在头文件中,在这种情况下不是。可以直接在类中使用常量,但是外部类需要静态方法(如果它是静态的)或实例方法来返回值。