Я занимаюсь дизайном небольшого проекта, в котором я не использовал программирование на основе интерфейсов для всех своих классов. Я обнаружил, что некоторые классы вряд ли понадобятся для изменения, поэтому я позволил своим клиентским классам ссылаться на них как на конкретные классы.
Итак, допустим, у нас есть ClassB
, которое будет израсходовано, будет израсходовано ClassA
:
class ClassB {
}
Мой вопрос заключается в том, должен ли я создать ClassB
в ClassA
или передать эту ответственность "вверх" в иерархии? Я опишу оба случая:
class ClassA {
private ClassB classB;
public ClassA() {
this.classB = new ClassB();
}
}
или
class ClassA {
private ClassB classB;
public ClassA(ClassB classB) {
this.classB = classB;
}
}
Я хотел бы услышать о том, как бы вы это сделали, и каково было бы обоснование этого!
Спасибо