service:TestService;
constructor(){
this.service = new TestService();
this.dataResults = service.getData()
}
TestService
ActualService
public class A{
A(IB service) {//here IB is interface , on which A class is depedant
//use service here
}
}
public class B : IB { }
public class C : IB { }
A a = new A(new B());
or
A a = new A(new C());
[{ provide: Logger , useClass: Logger}]
constructor(service: Logger){
this.dataResults = service.getData()
}
[{ provide: Logger , useClass: BetterLogger}]
or
[{ provide: Logger , useClass: TestLogger}]
MockService
https://angular.io/guide/testing
BetterLogger and TestLogger
Logger
https://angular.io/guide/dependency-injection
Dependency Injection
SOLID