24 lines
672 B
TypeScript
24 lines
672 B
TypeScript
import { DatabaseInterface } from './types';
|
|
import { SQLiteDatabase } from './sqlite-database';
|
|
|
|
class DatabaseFactory {
|
|
private static instance: DatabaseInterface | null = null;
|
|
|
|
static getInstance(): DatabaseInterface {
|
|
if (!this.instance) {
|
|
// Metro 会根据平台自动选择正确的文件
|
|
// Web: sqlite-database.web.ts
|
|
// Native: sqlite-database.ts
|
|
this.instance = new SQLiteDatabase();
|
|
}
|
|
return this.instance!;
|
|
}
|
|
|
|
// 用于测试或重置实例
|
|
static resetInstance(): void {
|
|
this.instance = null;
|
|
}
|
|
}
|
|
|
|
export const database = DatabaseFactory.getInstance();
|