依赖注入是什么意思?请写出代码
时间: 2023-04-06 10:02:30 浏览: 62
依赖注入是一种设计模式,它允许对象在创建时不直接依赖于其他对象,而是通过外部传入的方式来获取所需的依赖。这种方式可以提高代码的可测试性和可维护性。
以下是一个简单的依赖注入示例代码:
```
public class UserService {
private UserRepository userRepository;
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public User getUserById(int id) {
return userRepository.getUserById(id);
}
}
public interface UserRepository {
User getUserById(int id);
}
public class UserRepositoryImpl implements UserRepository {
public User getUserById(int id) {
// 从数据库中获取用户信息
}
}
public class Main {
public static void main(String[] args) {
UserRepository userRepository = new UserRepositoryImpl();
UserService userService = new UserService(userRepository);
User user = userService.getUserById(1);
System.out.println(user.getName());
}
}
```
在上面的代码中,UserService 类需要依赖于 UserRepository 接口来获取用户信息。通过构造函数注入的方式,UserService 类不需要直接依赖于 UserRepositoryImpl 类,而是通过外部传入的 UserRepository 接口来获取所需的依赖。这种方式可以提高代码的灵活性和可测试性。