Meniu (Română)

posted in: Articles | 0

deja știu ce este dependență injecție?
minim ‘ ve nu a auzit de injecție dependență?
alimente ce este?
Dacă nu toate sau nici unul dintre mijloacele de scris 😀

Injectare Dependență sau de obicei abreviat ca ÎN lumea de renume de programare după mai multe emergente cadru care implementează acest concept. Una dintre cele mai renumite și este primăvara.,
în ordinea prevăzută a unei clase nu legat strâns cu cealaltă clasă, astfel încât relația dintre părțile Codului să fie vag (cuplat vag).
limbaj interpretat ușor în mijloacele pe care le oferim/injecta o clasă într-o altă clasă, care este dependențele sale (nevoie de ea).

este Posibil dacă utilizați cuvinte care sampeyan pe mumet da 😀
de asemenea, am lucrat inițial dacă utilizați doar cuvinte pentru că nu mudheng ce înseamnă hehee
Dacă deci, hai să folosim un exemplu de codificare sadja..,>

40
41
42
43
44
45
46
47
48
49

model de pachet;
public class Mahasiswa {
private String nim;
private String nume;
private int umur;
private String asalSekolah;
private String alamat;
String publice getNim() {
întoarcere nim;
}
void setNim(String nim) {
acesta.,de remarcat faptul că = menționând;
}
String publice getNama() {
întoarcere de lupte sângeroase;
}
void setNama(Șir de lupte sângeroase) {
acesta.lupte sângeroase = lupte sângeroase;
}
public int getUmur() {
întoarcere umur;
}
void setUmur(int umur) {
acesta.,varsta = varsta;
}
String publice getAsalSekolah() {
întoarcere schoolname;
}
void setAsalSekolah(String schoolname) {
acesta.schoolname = schoolname;
}
String publice getAlamat() {
adresă de retur;
}
void setAlamat(adresa String) {
acesta.,adresa = adresa;
}
}

Pentru a efectua operațiuni de baze de date din clasa de mai sus, cum ar fi salvați student, elimina, edita și interogare a datelor, vom crea o clasă care se ocupă de astfel de lucruri.
creăm o clasă cu numele MahasiswaDao

încercați să vă uitați la clasa de mai sus.
la prima vedere nu este nimic greșit, nu? 🙂

în cazul în care nota de fapt, a fost de fapt nimic greșit, că există mai puțin elegant.
Notă din partea constructorului clasei de mai sus.,
acolo clasa, acest aspect necesită (depinde) de conexiune pentru a efectua diverse operații de baze de date.
O privire la Partea I scoate în evidență
cum se obține o conexiune aceasta este ceea ce vom discuta

Deci, în cazul în care, nu elegant?
Ei bine,
La aplicarea reală desigur, nu avem doar un student de masă, nu-i așa?
există încă tabele lectori, cursuri, valoare, utilizator, program, departament, și altele pot fi de până la o mulțime în funcție de nevoile.
Ei bine.., vă puteți imagina dacă mai târziu va exista și o clasă cu numele celorlalte clase xxxDao și fiecare dao care au un constructor ca mai sus.

Runyamnya aici.
dacă, de exemplu, locația schimbării serverului, atunci trebuie să o înlocuim de la 1 la 1 pe fiecare clasă dao???
dacă există sute de clase cum???
să nu mai vorbim de unitatea de testare folosind obiect mock cum???
știți deja unde este mai puțin elegant 😀

pentru a depăși acest lucru, folosim injecția de dependență.,

Mari kita refactor kelas MahasiswaDao sehingga constructor menjadi seperti ini

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

pachetul dao;
import com.mysql.jdbc.jdbc2.opțional.,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.,conexiune=legătură;
}

Vom Adăuga un parametru în constructor, astfel încât Conexiunea poate fi dat (într-injectkan) la clasa MahasiswaDao care au nevoie de ea.
în aceste clase Dao nu trebuie să aibă grijă de inițializarea DataSource și conexiunea lui.
atunci cine inițializează? poate cineva origine nu este o clasă Dao în sine.
De exemplu sadja inițializăm pe TestMahasiswaDao de exemplu.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *