Estoy haciendo el diseño de un proyecto pequeño donde no usé programación contra interfaces para todas mis clases. Descubrí que algunas clases casi nunca serían necesarias para cambiar, así que dejo que las clases de sus clientes las mencionen como clases concretas.¿Debo hacer explícitas las dependencias de clases concretas mediante la inyección de constructores en mis clases?
tanto, vamos a decir que tenemos ClassB
que va a ser consumida ser consumido por ClassA
:
class ClassB {
}
Mi pregunta es, ¿debería crear ClassB
en ClassA
, o debería pasar esa responsabilidad "arriba" en la jerarquía? Voy a represento ambos casos:
class ClassA {
private ClassB classB;
public ClassA() {
this.classB = new ClassB();
}
}
o
class ClassA {
private ClassB classB;
public ClassA(ClassB classB) {
this.classB = classB;
}
}
Me gustaría saber cómo lo haría y żqué ser la razón detrás de él!
Gracias
hace la diferencia! ¡Todavía estás programando para el concreto! –
En realidad lo hace. Puedo pasar las clases extendidas de ClassB. Pero entonces quizás tenga más sentido simplemente programar ClassA contra una interfaz en primer lugar. :( –
Sí .................. –