Обеспечение синглтона Angular 6

В настоящее время я создаю библиотеку с некоторыми основными службами, такими как аутентификация. Однако некоторые наши разработчики используют один тип поставщика аутентификации, а некоторые другие используют другую схему аутентификации. Поэтому я подумал о создании фабричной функции, которая принимает некоторую конфигурацию и возвращает реализацию, которая выходит из того же абстрактного класса. Тем не менее, я хотел бы отправить его обратно в виде отдельного файла и создать только тот экземпляр, который мне нужен, не обоим классам.

Вот часть кода, который я сделал до сих пор:

export function AuthFactory(http: HttpClient, appConfig: ConfigService, 
router: Router){

  switch (appConfig.authorizationType){
case 'ldap' : new AuthService(http, appConfig, router)
case 'token' : new TokenAuthService()
default : new AuthService(http, appConfig, router)

}}

Сервис ниже:

@Injectable({
providedIn: 'root',
useFactory: AuthFactory,
deps: [HttpClient, ConfigService, Router],
})
export class AuthorizationFactoryService implements AuthBaseService

0 ответов

Другие вопросы по тегам