Menu (Español)

publicado en: Articles | 0

¿ya sabes qué es la inyección de dependencias?
mínimo nunca he oído hablar de inyección de dependencia?comida ¿qué es?
Si no todos o no uno de los medios que están en la escritura correcta <

inyección de dependencia o comúnmente abreviado como en la programación de renombre mundial después de muchos marco emergente que implementa este concepto. Una de las más famosas es la primavera.,
En el orden previsto de una clase no enlazada estrechamente con la otra clase de modo que la relación entre las partes del código a ser loosely (loosely coupled).
lenguaje interpretado fácil en los medios que proporcionamos / inyectamos una clase en otra clase que son sus dependencias (lo necesitamos).

posible si usas las palabras que sampeyan en mumet sí <
también trabajé inicialmente si solo usas palabras porque no mudheng lo que significa hehee
Si es así usemos el ejemplo de codificación sadja..,>

40
41
42
43
44
45
46
47
48
49

el paquete modelo;
public class Mahasiswa {
Cadena privada de nim;
Cadena privada de nama;
private int umur;
Cadena privada de asalSekolah;
Cadena privada de alamat;
public String getNim() {
volver nim;
}
public void setNim(Cadena de nim) {
este.,tomando nota de que = señalando;
}
public String getNama() {
retorno de la lucha sangrienta;
}
public void setNama(Cadena de sangrientos combates) {
este.lucha sangrienta = lucha sangrienta;
}
public int getUmur() {
volver umur;
}
public void setUmur(int umur) {
este.,edad = edad;
}
public String getAsalSekolah() {
volver schoolname;
}
public void setAsalSekolah(Cadena schoolname) {
este.schoolname = schoolname;
}
public String getAlamat() {
dirección de retorno;
}
public void setAlamat(String direccion) {
este.,address = address;
}
}

para realizar operaciones de base de datos desde la clase anterior, como guardar el estudiante, eliminar, editar y consultar datos, creamos una clase que maneja tales cosas.
creamos una clase con el nombre del MahasiswaDao

intente mirar la clase anterior.
a primera vista no hay nada malo, ¿verdad? 🙂

si la nota en realidad era en realidad nada malo, que no es menos elegante.nota por parte del constructor de la clase anterior.,
Hay Clase, este aspecto requiere (dependiente) de la conexión para realizar varias operaciones de base de datos.
un vistazo a la parte i destaca
Cómo obtener una conexión esto es lo que vamos a discutir el

así que, donde, no elegante?bueno, en la aplicación real, por supuesto, no solo tenemos un estudiante de mesa, ¿no?
todavía hay tablas profesores, cursos, valor, usuario, horario, departamento, y otros pueden estar hasta mucho dependiendo de las necesidades.bueno.., se puede imaginar si más tarde también habrá una clase con el nombre de la xxxDao otro y cada Dao clases que tienen un constructor como el anterior.

Runyamnya aquí.
si por ejemplo la ubicación del servidor cambia entonces tenemos que reemplazarlo un 1 a 1 en cada clase dao???si hay cientos de clases ¿cómo???
sin mencionar para las pruebas unitarias usando objeto simulado ¿cómo???
ya sabemos dónde está el menos elegante <

para superar esto, utilizamos la inyección de dependencia.,

Mari kita refactorizar kelas MahasiswaDao este constructor de una de seperti ini

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

el paquete dao;
import com.mysql.jdbc.jdbc2.opcional.,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.,conexión=conexión;
}

añadimos un parámetro en el constructor para que la Conexión puede ser dado (en injectkan) a la clase MahasiswaDao que lo necesitan.
en este Dao las clases no necesitan ocuparse de la inicialización de la fuente de datos y la conexión de la suya.entonces, ¿quién hace la inicialización? puede cualquier origen no es una clase DAO en sí.
Por ejemplo sadja inicializamos en TestMahasiswaDao por ejemplo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *