Czy Dependency Injection jest dobrą praktyką?

0

Z tego, co rozumiem to DI jest czymś w stylu:

class LoginService {
    User user;

    LoginService(User user) {
        this.user = user;
    }
}

Czy jest to dobra praktyka np. w takim przypadku, gdy programujemy GUI (Swing) i do jakiegoś komponentu wstrzykujemy okno, w którym ten komponent się znajduje, aby łatwo zrobić przepływ informacji przy wciskaniu guzików itd?

Generalnie czy taki kod jest poprawny:

public class MainWindow extends JFrame {
	public MainWindow() {
		// ...
		AnimationPanel animationPanel = new AnimationPanel(this);
		add(animationPanel);
	}
}

public class AnimationPanel extends JPanel {
	private MainWindow mainWindow;

	public AnimationPanel(MainWindow window) {
		mainWindow = window;
	}
	
	// ...
}
0

DI niewiele ma wspólnego z tym co napisałeś, niemniej wracając do pytania: taki kod może być ok, ale wiele zależy od tego jak wygląda reszta kodu. Niemniej tak na oko to ten twój program będzie łamał MVC / MVP.

0

Jakoś gubię się we własnym kodzie w programach okienkowych. Za dużo różnych zależności, które ciężko napisać w czytelny sposób. Jasne, łamie to MVC, ale czy taki sposób postępowania jest spotykany? Wydaje mi się, że rozwiązuje sporo problemów i zwiększa czytelność.

2

Nie, tak się nie robi. Od sterowania przepływem służy Prezenter albo Kontroler.

1 użytkowników online, w tym zalogowanych: 0, gości: 1