File size: 910 Bytes
2c16c8c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | import { UserRepositorySupabase } from '../../infra/supabase/repository/user.repository';
import { UserService } from './user.service';
import { UserController } from './user.controller';
export class UserFactory {
private static repository: UserRepositorySupabase;
private static service: UserService;
private static controller: UserController;
static getRepository() {
if (!UserFactory.repository) {
UserFactory.repository = new UserRepositorySupabase();
}
return UserFactory.repository;
}
static getService() {
if (!UserFactory.service) {
UserFactory.service = new UserService(UserFactory.getRepository());
}
return UserFactory.service;
}
static getController() {
if (!UserFactory.controller) {
UserFactory.controller = new UserController(UserFactory.getService());
}
return UserFactory.controller;
}
} |