У меня есть базовый класс, который наследуется примерно десятью подклассами. Большинство этих подклассов имеют очень похожее поведение, но я хочу определить специализированные методы только для трех из них.
Можно ли замаскировать существование этих классов, автоматически загружая родительский класс каждый раз, когда создается экземпляр объекта дочернего класса? Таким образом, мне не пришлось бы определять несколько классов с одним и тем же кодом?
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
не будут иметь дублированный код. - person grossvogel   schedule 21.09.2010