写两串代码,一个使用了依赖注入,一个没有使用依赖注入
时间: 2024-04-11 20:33:34 浏览: 62
使用依赖注入的示例代码:
```java
// 依赖接口
public interface GreetingService {
void sayHello();
}
// 依赖实现类
public class GreetingServiceImpl implements GreetingService {
@Override
public void sayHello() {
System.out.println("Hello, World!");
}
}
// 使用依赖注入的类
public class MyComponent {
private GreetingService greetingService;
// 通过构造函数注入依赖
public MyComponent(GreetingService greetingService) {
this.greetingService = greetingService;
}
public void doSomething() {
greetingService.sayHello();
}
}
// 使用依赖注入的示例
public class Main {
public static void main(String[] args) {
GreetingService greetingService = new GreetingServiceImpl(); // 创建依赖对象
MyComponent myComponent = new MyComponent(greetingService); // 通过构造函数注入依赖
myComponent.doSomething();
}
}
```
未使用依赖注入的示例代码:
```java
// 依赖接口
public interface GreetingService {
void sayHello();
}
// 依赖实现类
public class GreetingServiceImpl implements GreetingService {
@Override
public void sayHello() {
System.out.println("Hello, World!");
}
}
// 未使用依赖注入的类
public class MyComponent {
private GreetingService greetingService = new GreetingServiceImpl(); // 直接创建依赖对象
public void doSomething() {
greetingService.sayHello();
}
}
// 未使用依赖注入的示例
public class Main {
public static void main(String[] args) {
MyComponent myComponent = new MyComponent(); // 直接创建组件对象
myComponent.doSomething();
}
}
```
在未使用依赖注入的示例中,MyComponent类直接创建了GreetingServiceImpl类的实例,导致组件与具体的实现类耦合在一起。而使用依赖注入的示例中,MyComponent类通过构造函数注入了GreetingService接口的实现类,实现了组件与具体实现类的解耦。
阅读全文