Sto progettando un piccolo progetto in cui non ho usato la programmazione contro le interfacce per tutte le mie classi. Ho scoperto che alcune classi non sarebbero quasi mai necessarie per cambiare, quindi li lascio fare riferimento alle loro classi client come classi concrete.Devo rendere esplicite le dipendenze delle classi concrete mediante l'iniezione del costruttore nelle mie classi?
Quindi, cerchiamo di dire che abbiamo ClassB
che sarà consumato essere consumato da ClassA
:
class ClassB {
}
La mia domanda è, devo creare ClassB
in ClassA
, o dovrei passare che responsabilità "su" nella gerarchia? Io rappresento entrambi i casi:
class ClassA {
private ClassB classB;
public ClassA() {
this.classB = new ClassB();
}
}
o
class ClassA {
private ClassB classB;
public ClassA(ClassB classB) {
this.classB = classB;
}
}
mi piacerebbe sentir parlare di come si dovrebbe fare e Cos'hai essere la logica dietro di esso!
Grazie
non fa differenza! Stai ancora programmando sul cemento! –
Effettivamente. Posso passare le lezioni estese di ClassB. Ma allora forse avrebbe più senso programmare semplicemente ClassA contro un'interfaccia, in primo luogo. :( –
Sì .................. –