如何在私有的构造函数注入服务

问题描述:

我有一个现有的代码具有私有的构造和返回对象实例返回对象实现Singleton模式 -如何在私有的构造函数注入服务

export class SingletonFactory { 
    private static factoryInstance = new SingletonFactory(); 

    private constructor() { 
    } 

    public static getInstance() { 
    return SingletonFactory.factoryInstance; 
    } 
} 

我需要注入的依赖到这家工厂。我改变了我的代码如下 -

@Inject('MyService') 
export class SingletonFactory { 
    private static factoryInstance = new SingletonFactory(); 

    private constructor(private myService : MyService) { 
    } 

    public static getInstance() { 
    return SingletonFactory.factoryInstance; 
    } 
} 

请建议,我怎么能注入在构造函数在创建对象的依赖?

+0

您有XY问题。为什么你使用SingletonFactory? Angular DI应该为你管理单例实例。 – estus

+0

我继承了这个工厂的代码。我只是想添加一个依赖;如果我理解正确,你建议把它转换成一个有角度的工厂,让框架维护单身实例吗? – SoftEngi

+0

我建议使用它作为“服务”服务。它已经是一个单身人士了。它接受类。如果你对这种方法有问题,我建议用相关细节更新这个问题。这不是一个典型的AngularJS代码。它使用ng-metadata吗? – estus

注入您的组件。

import { Router } from '@angular/router'; 
    import { FormBuilder, FormGroup, Validators} from '@angular/forms'; 
    import { Location } from '@angular/common'; 
    constructor(public location: Location,public fb:FormBuilder,public global_service:GlobalService,public router: Router) { 

     } 
+0

我已经将参数添加到构造函数,我的问题是如何通过调用构造函数来构造对象的位置传递参数? – SoftEngi