У меня есть базовый класс, который наследуется примерно из десяти подклассов. Большинство этих подклассов имеют очень похожее поведение, но я хочу определить специализированные методы только для трех из них.Как маскировать дочерние классы в родительском классе с автозагрузкой (php)
Можно ли маскировать существование этих классов путем автозагрузки родительского класса каждый раз, когда экземпляр объекта дочернего класса создается? Таким образом, мне не нужно было бы определять несколько классов с одним и тем же кодом?
E.g.
class ParentClass {
public function __construct() {
switch(get_class($this)) {
case "ChildClass1" : do_stuff() break;
case "ChildClass2" : do_other_stuff() break;
default: break;
}
}
}
$c1 = new ChildClass1();
$c2 = new ChildClass2();
... и есть только один файл ParentClass.php
(нет отдельных файлов ChildClass1.php
или ChildClass2.php
).
Не копируйте свой код, чтобы сохранить создание нескольких файлов. Если вы поместите общую реализацию в «ParentClass» и только переопределите, где это необходимо, в дочерних классах, файлы «ChildClass1.php» и «ChildClass2.php» не будут иметь дублированный код. – grossvogel