PHP
0% Tamamlandı
4 Kasım 2019 7 Bölüm Orta seviye
6. Bölüm Detayları

PHP Design Patterns | Chain of Responsibility Pattern

En basit hali ile PHP Chain of Responsibility Pattern nedir? Nasıl kullanılır? Hangi amaçlara uygundur kısımlarını inceledik. Kendi servislerinizi yazarken bolca kullanmanız gereken bir tasarım desenidir.

Sorular

Siz de eğitmene bu bölüm hakkında sorular sorabilirsiniz.

Laravel, bootstrap, vue.js, unity ve daha bir çok online eğitim- phpuzem.com
phpuzem
neredeyse 2 yıl önce
  • 2 Cevap
  • 0 Oy
abstract class Framework
{
    protected $successor;

    public abstract function check(Project $project);

    public function setSuccessor(Framework $successor)
    {
        $this->successor = $successor;
    }

    public function next(Project $project)
    {
        if ($this->successor) {
            $this->successor->check($project);
        }
    }

}
Laravel, bootstrap, vue.js, unity ve daha bir çok online eğitim- phpuzem.com
phpuzem
neredeyse 2 yıl önce
  • 0 Oy
class Plan extends Framework
{
    public function check(Project $project)
    {
        if (! $project->is_planned) {
            throw new Exception('Project is not planned yet.');
        }

        $this->next($project);
    }

}

class Design extends Framework
{
    public function check(Project $project)
    {
        if (! $project->is_designed) {
            throw new Exception('Project is not designed yet.');
        }

        $this->next($project);
    }
}

class Software extends Framework
{
    public function check(Project $project)
    {
        if (! $project->is_software_completed) {
            throw new Exception('Project software is not completed yet.');
        }

        $this->next($project);
    }
}
Laravel, bootstrap, vue.js, unity ve daha bir çok online eğitim- phpuzem.com
phpuzem
neredeyse 2 yıl önce
  • 0 Oy
class Project
{
    public $is_planned = true;
    public $is_designed = true;
    public $is_software_completed = true;
}

$plan     = new  Plan;
$design   = new Design();
$software = new Software();

$plan->setSuccessor($software);
$design->setSuccessor($software);

$plan->check(new Project());
Laravel, bootstrap, vue.js, unity ve daha bir çok online eğitim- phpuzem.com
Cevapla

Geliştiricinin Seçim Kanalı

Derslere Gözat Tartışma Forumu