Для моего нового ORM ( chibi-ORM ) я сталкиваюсь с дизайнерским решением.
Я создаю API для отношений, например:
@interface SamplePerson : DbObject {
NSString *name;
DbObjectRelation *cities;
}
Теперь для DbObjectRelation
у меня есть этот макет:
@interface DbObjectRelation : NSObject {
NSMutableArray *childRows;
DbObject *parent;
BOOL isLoaded;
}
-(void) load;
-(void) addObject:(DbObject *) childRow;
-(void) removeObject:(DbObject *) childRow;
- (id)initWitParent:(DbObject *)parentObject;
Итак, мне нужен способ узнать, какую базу данных использовать для загрузки записей.
Я думаю, что есть в моем подключении к БД что-то вроде:
static NSString *currentDbNameSingleton = nil;
+(NSString *)currentDbName {
@synchronize( self ) {
if ( currentDbNameSingleton == nil ) {
currentDbNameSingleton = [[NSString alloc]
}
}
return sharedInst;
}
+(void) setCurrentDbName(NSString *)name {
@synchronize( self ) {
currentDbNameSingleton = [name copy];
}
}
Но подумайте, а лучше ли строить класс БД как синглтон? Это для проектов iPhone ...