Sobes.tech
Middle

Kuidas kasutate oma töös sõltuvuste süstimist?

sobes.tech AI

Vastus AI-lt

Sõltuvuste süstimine (Dependency Injection, DI) on muster, mis võimaldab objekti sõltuvusi väljastpoolt üle anda, mitte neid sees luua. Java-s kasutan DI-d, et parandada koodi modulaarust, testitavust ja hoolduskergust.

Näiteks Spring Frameworks deklareerin sõltuvused bean'idena ning Spring konteiner injekteerib need automaatselt vajalikesse klassidesse konstruktorite või setterite kaudu. See hõlbustab teostuste asendamist, näiteks üksustestide kirjutamisel, kus saab kasutada mock-objekte.

DI kasutamise näide konstruktoriga:

@Component
public class UserService {
    private final UserRepository userRepository;

    // Sõltuvus injekteeritakse konstruktoriga
    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    public User findUser(String id) {
        return userRepository.findById(id);
    }
}

Selline lähenemine soodustab juhtimise pööramist (IoC), kus objektide loomine ja sidumine kontrollitakse välise konteineri poolt, mitte iseenda klassi poolt.