Menu (Svenska)

posted in: Articles | 0

vet redan vad det är Beroendeinjektion?
Minimum har aldrig hört talas om Beroendeinjektion?
mat Vad är det?
om inte alla eller inte ett av de medel du är på rätt skrivning

Dependency Injection eller vanligen förkortat som i den världsberömda programmering efter många nya ramverk som genomför detta koncept. En av de och mest kända är våren.,
i avsedd ordning för en klass som inte är tätt bunden med den andra klassen så att förhållandet mellan delarna av koden ska vara löst (löst kopplad).
tolkat språk enkelt på det sätt vi tillhandahåller/injicerar en klass i en annan klass som är dess beroenden (behöver det).

det är Möjligt om du använder ord som sampeyan på mumet ja 😀
jag har också arbetat inledningsvis om du bara använda ord eftersom inte mudheng vad det innebär hehee
Om så låt oss använda exemplet med kodning sadja..,>

40
41
42
43
44
45
46
47
48
49
paketmodell;

offentlig klass mahasiswa {
privat sträng nim;
privat sträng nama;
privat int umur;
privat sträng asalsekolah;
privat sträng alamat;
Offentlig sträng getnim () {
returnera nim;
}
privat sträng div > public Void setnim(string nim) {
detta.,notera att = notera;
}
Offentlig sträng getNama() {
return of bloody fighting;
}
offentligt tomrum setNama(String of bloody fighting) {
detta.bloody fighting = blodig fighting;
}
public int getUmur() {
return umur;
}
public void setUmur(int umur) {
detta.,age = age;
}
public String getAsalSekolah () {
return schoolname;
}
public void setasalsekolah(String schoolname) {
detta.schoolname = schoolname;
}
Offentlig sträng getAlamat() {
returadress;
}
public void setAlamat(String address) {
detta.,address = address;
}
}

för att utföra databasoperationer från klassen ovan, till exempel spara studenten, ta bort, Redigera och fråga data, skapar vi en klass som hanterar sådana saker.
vi skapar en klass med namnet MahasiswaDao

försök att titta på klassen ovan.
vid första anblicken är det inget fel, eller hur?

om noten faktiskt var inget fel, att det är mindre elegant.
notera på den del av konstruktören av klassen ovan.,
det Klass, detta utseende kräver (beroende) på Anslutningen för att utföra olika databasoperationer.
En titt på den del jag belyser
hur man får en anslutning Detta är vad vi kommer att diskutera

så, var, inte elegant?
Tja,
på den verkliga tillämpningen naturligtvis har vi inte bara en bordsstudent är det inte?
det finns fortfarande tabeller föreläsare, kurser, värde, användare, schema, avdelning, och andra kan vara upp till en hel del beroende på behoven.
väl.., du kan föreställa dig om senare kommer det också att finnas en klass med namnet på xxxDao andra och varje Dao klasser som har en konstruktör som ovan.

Runyamnya här.
om till exempel platsen för servern ändras måste vi ersätta den en 1 till 1 på varje klass dao???
om det finns hundratals klasser hur???
för att inte tala om för enhetstestning med mock object hur???
vet redan var det mindre eleganta

för att övervinna detta använder vi Beroendeinjektionen.,

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

paket dao;
import com.mysql.jdbc.jdbc2.valfri.,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.,anslutning = anslutning;
}

Vi lägger till en parameter på konstruktören så att anslutningen kan ges (in-injectkan) till klassen MahasiswaDao som behöver den.
i denna Dao klasser behöver inte ta hand om initieringen av DataSource och anslutningen av hans.
vem initierar då? kan någon ursprung är inte en klass Dao själv.
till exempel sadja vi initiera på TestMahasiswaDao till exempel.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *