Обеспечение синглтона 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