Ну, с самого начала я думал, что абстракции бессмысленны … Я просто не понимаю, нужно ли их использовать или нет — особенно при работе фрилансером без помощи кого-либо еще.
Вот небольшой урок, который я сделал, чтобы продемонстрировать это. То, что я делал в этих классах, можно было легко сделать в обычном классе. Не было необходимости в абстрактном классе. Может кто-нибудь сказать мне, где абстрактный класс будет полезен в небольшом примере, пожалуйста. Я хочу знать, когда и зачем использовать абстракцию, я не спрашиваю
abstract class Computer{
abstract function turn_on();
abstract function turn_of();
abstract function activate_fan();
}
class Toshiba extends Computer{
function turn_on(){
echo __class__ ." is now on. Green light showing </br>";
$this->activate_fan();
}
function turn_of(){
echo __class__ ." is now of. No light showing </br>";
}
public function activate_fan(){
echo __class__ . " Fan is now running, speed 300rps </br>";
}
}class Asus extends Computer{
function turn_on(){
echo __class__ ." is now on. Blue light showing </br>";
$this->activate_fan();
}
function turn_of(){
echo __class__ ." is now of. No light showing </br>";
}
public function activate_fan(){
echo __class__ . " fan is now running, speed 80rps </br>";
}
}
$Toshiba = new Toshiba;
$Asus = new Asus;
$Toshiba->turn_on();
$Asus->turn_on();
Как насчет этого примера:
function restartComputers($computers) {
foreach ($computers as $c) {
$c->turn_of();
$c->turn_on();
}
}
Других решений пока нет …