Я не совсем уверен, имеет ли имя то, что я ищу, поэтому мне было немного трудно его искать, поэтому я прошу прощения, если на то, что я спрашиваю, уже был дан ответ здесь.
Ситуация такова, что у меня есть абстрактный класс, который, конечно, имеет много других классов, расширяющих его.
Абстрактный метод в абстрактном классе называется run()
, и все расширяющие классы определяютэтот метод.
Моя проблема в том, что я хочу вызвать некоторый общий код после вызова метода run()
, но я хочу знать, есть ли лучший способ сделать это.
Конечно, я мог бы просто вставить свой общий код в метод run()
каждого расширяющего класса, но если я сделаю это, мне будет очень сложно внести простые изменения с этого момента.
Я мог бы также поместить свой общий код в метод родительского класса и затем вызвать метод из run()
расширяющего класса с помощью $this
.
Но мой вопрос в том, есть ли лучшийспособ сделать это, или мне нужно либо использовать ключевое слово $this
, либо вставить код в код каждого класса?
Вот небольшой пример того, что я хочу сделать с моей текущей идеей:
abstract class Parent_Class {
public abstract function run();
protected function common_code() {
// Common code here
}
}
class Child_Class {
public function run() {
// Code here
// I want some common code to run after the run method has been called
$this->common_code(); // Is this the best way to do it?
}
}
Или можно как-то сказать классу, что при вызове метода run()
для автоматического запуска метода common_code()
?