在使用依赖注入(Dependency Injection, DI)时,我们可以通过不同的实例来注入不同的接口实现。以下是一个示例代码,演示了如何使用不同实例的接口的依赖注入。
首先,我们定义一个接口IService
,它包含一个方法doSomething()
:
public interface IService {
void doSomething();
}
然后,我们创建两个实现该接口的类ServiceA
和ServiceB
:
public class ServiceA implements IService {
@Override
public void doSomething() {
System.out.println("Service A is doing something.");
}
}
public class ServiceB implements IService {
@Override
public void doSomething() {
System.out.println("Service B is doing something.");
}
}
接下来,我们创建一个依赖IService
的类Client
,并在构造方法中接收一个IService
实例作为参数:
public class Client {
private IService service;
public Client(IService service) {
this.service = service;
}
public void execute() {
service.doSomething();
}
}
最后,我们可以创建不同实例的IService
,并将它们注入到Client
中进行使用:
public class Main {
public static void main(String[] args) {
IService serviceA = new ServiceA();
IService serviceB = new ServiceB();
Client client1 = new Client(serviceA);
client1.execute(); // Output: Service A is doing something.
Client client2 = new Client(serviceB);
client2.execute(); // Output: Service B is doing something.
}
}
在上述示例中,我们分别创建了ServiceA
和ServiceB
的实例,并将它们作为参数传递给Client
的构造方法。然后,通过调用execute()
方法,Client
将根据传入的实例调用相应的方法。
这样,我们就实现了不同实例的接口的依赖注入。