Wissen Sie bereits, was es ist Dependency Injection?
Ich habe noch nie von Dependency Injection gehört?
Essen, was ist es?
Wenn nicht alle oder nicht eines der Mittel, die Sie an der richtigen schreib 😀
Dependency Injection oder allgemein abgekürzt wie in der weltbekannten Programmierung nach vielen aufstrebenden Rahmen, der dieses Konzept implementiert. Einer der und der berühmteste ist der Frühling.,
IN der vorgesehenen Reihenfolge einer Klasse nicht eng mit der anderen Klasse gebunden, so dass die Beziehung zwischen den Teilen des Codes lose (lose gekoppelt) werden.
Interpretierte Sprache einfach in den Mitteln, die wir bieten / injizieren eine Klasse in eine andere Klasse, die ihre Abhängigkeiten ist (es brauchen).
Möglich, wenn Sie die Wörter verwenden, die sampeyan auf mumet ja 😀
Ich habe auch anfangs gearbeitet, wenn Sie nur Wörter verwenden, weil nicht mudheng, was es bedeutet, hehee
Wenn ja, lassen Sie uns das Beispiel der Codierung sadja verwenden..,>
Um Datenbankoperationen aus der obigen Klasse auszuführen, z. B. den Schüler speichern, Daten entfernen, bearbeiten und abfragen, erstellen wir eine Klasse, die solche Dinge behandelt.
Wir erstellen eine Klasse mit dem Namen des MahasiswaDao
Versuchen Sie, die Klasse oben zu betrachten.
auf den ersten Blick gibt es nichts falsch, nicht wahr? 🙂
Wenn die Notiz tatsächlich nichts falsch war, dass es weniger elegant.
Hinweis seitens des Konstruktors der Klasse oben.,
Es Klasse, erfordert dieser Look (abhängig) von der Verbindung, um verschiedene Datenbankoperationen durchzuführen.
ein Blick auf den Teil, den ich hervorhebt
wie eine Verbindung zu bekommen dies ist, was wir die
diskutieren So, wo, nicht elegant?
Nun,
Auf der realen Anwendung natürlich haben wir nicht nur einen Tisch, nicht wahr?
es gibt noch Tabellen Dozenten, Kurse, Wert, Benutzer, Zeitplan, Abteilung, und andere können bis zu viel je nach Bedarf.
Gut.., sie können sich vorstellen, ob es später auch eine Klasse mit dem Namen xxxDao other und jeder Dao-Klasse geben wird, die einen Konstruktor wie oben haben.
Runyamnya hier.
Wenn zum Beispiel der Standort des Servers ändern, dann müssen wir es ein 1 zu 1 auf jeder Klasse dao ersetzen???
wenn es Hunderte von Klassen, wie???
nicht für Unit-Tests mit Mock-Objekt zu erwähnen, wie???
bereits wissen, wo die weniger elegant 😀
Um dies zu überwinden, verwenden wir die Abhängigkeitsinjektion.,
Mari kita umgestalten kelas MahasiswaDao sehingga Konstruktor wurde zu wie die ini –
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
package dao;
importieren com.mysql.jdbc.jdbc2.optional.,MysqlDataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import model.Mahasiswa;
public class MahasiswaDao {
Connection connection;
public MahasiswaDao(Connection connection) throws SQLException{
this.,connection=connection;
}
|
Wir fügen dem Konstruktor einen Parameter hinzu, damit die Verbindung (in-injectkan) an die Klasse MahasiswaDao gegeben werden kann, die sie benötigt.
IN diesem Dao-Klassen müssen nicht kümmern sich um die Initialisierung der Datenquelle und die Verbindung seiner.
Wer dann Initialisierung tun? kann jemand Herkunft ist keine Klasse Dao selbst.
Zum Beispiel sadja initialisieren wir auf TestMahasiswaDao zum Beispiel.
Schreibe einen Kommentar