Проблема заключается в следующем: у меня есть абстрактный класс, который выполняет некоторую работу в его конструкторе и набор дочерних классов, реализующих абстрактный класс:
class AbstractClass {
AbstractClass(){ /* useful implementation */ }
}
class ConcreteClass1 extends AbstractClass {
ConcreteClass1(){ super(); /* useful implementation */ }
}
Затем конкретные классы должны быть настроены, а одно решение - расширить конкретные классы:
class CustomizedClass1 extends ConcreteClass1 {
CustomizedCLass1(){ super(); /* useful implementation */ }
}
НО проблема заключается в том, что настраиваемые классы нужно только вызвать конструктор абстрактного класса, а не конкретный конструктор класса.
Как вы это достигаете? Предложения по изменению отношений классов действительны.
EDIT: конкретный пример: ConcreteClass1 и CustomizedClass1 имеют разные наборы данных (ConcreteData1 и CustomizedData1) и извлекаются из базы данных в конструкторе класса. Проблема в том, что создание экземпляра CustomizedClass1 будет извлекать обе части данных.
Я знаю, что, используя простое наследование, это, вероятно, не самое лучшее, что нужно сделать, поэтому я указал, что предложения по изменению отношений классов действительны.